there's no need to mention that you're an RHCE. Being an RHCE does not suddenly predispose you to knowledge about how to use Linux and RPMs. All the documentation is available on the web.
What are these social, political, technical, and engineering reasons? Has this ever been discussed anywhere prior?
Whether or not my perspective is wrong, my view is this:
Social and political reasons are really one and the same. Social reasons *are* political reasons, and vice versa.
The same ties in with technical and engineering problems.
What exactly do politics have to do with programming languages?
There are no engineering reasons to back down from anything, if everything you do is a kludge upon the old system. (flame coat on) See Perl 5 for example.:)
Also, to reiterate, I'm not saying a pure Scheme interpreter. But the semantic model of Scheme matches all these languages very closely, and there are a good number of Scheme bytecode-based interpreters available. It makes sense to not only support Scheme, but to also seriously consider it from a design standpoint.
Why is Scheme viewed as the ugly cousin, with Perl, Ruby, and Python ganging up? And more importantly, why do Ruby and Python communities look down so snobbishly upon Perl?
It's not just for Perl though. Parrot is for everything, right? Scheme's going to be on it at some point, then. You can already match Python and Ruby's semantic model in Scheme, and AFAIK, most of Perl too if not all of it. It's therefore only sensible to look at it and think "Well, here is a solution".
Parrot is more dynamically typed, yes, but they also made the wrong choice when choosing a VM.
They wanted to support dynamic languages, so they should've chosen a Scheme VM and modified it from there. Consider that Scheme and Perl have very similar semantics in many cases, and that a modified Scheme VM could easily run Perl programs, matching the Perl semantic model.
A system that combined some of the semantics of Lua with Scheme would actually be the most suited to this type of task. If you don't know what Lua is, well, it has hooks that allow you to specify events which occur when certain things happen.
Like, when a hash table is accessed, you can overload that behavior (which Perl has with TIE), or when an undefined subroutine might be called, you can override that behavior. (which Perl has with AUTOLOAD). Lua 5 just got coroutines, lexical closures, and tail calls - sounds an *awful* lot like Scheme, no?:)
-toomuchPerl
If languages are defined by their community, then PHP is not a real language, because the vast majority of PHP coders I have seen are idiots. PHP is coming up alongside VB and Java as the #3 language for web hacks (by hacks I mean people who DO NOT know what they're doing;-) to learn.
-malander
don't moderate, flame!
Whether or not my perspective is wrong, my view is this:
Also, to reiterate, I'm not saying a pure Scheme interpreter. But the semantic model of Scheme matches all these languages very closely, and there are a good number of Scheme bytecode-based interpreters available. It makes sense to not only support Scheme, but to also seriously consider it from a design standpoint.
Why is Scheme viewed as the ugly cousin, with Perl, Ruby, and Python ganging up? And more importantly, why do Ruby and Python communities look down so snobbishly upon Perl?
It's not just for Perl though. Parrot is for everything, right? Scheme's going to be on it at some point, then. You can already match Python and Ruby's semantic model in Scheme, and AFAIK, most of Perl too if not all of it. It's therefore only sensible to look at it and think "Well, here is a solution".
Parrot is more dynamically typed, yes, but they also made the wrong choice when choosing a VM. They wanted to support dynamic languages, so they should've chosen a Scheme VM and modified it from there. Consider that Scheme and Perl have very similar semantics in many cases, and that a modified Scheme VM could easily run Perl programs, matching the Perl semantic model. :)
A system that combined some of the semantics of Lua with Scheme would actually be the most suited to this type of task. If you don't know what Lua is, well, it has hooks that allow you to specify events which occur when certain things happen. Like, when a hash table is accessed, you can overload that behavior (which Perl has with TIE), or when an undefined subroutine might be called, you can override that behavior. (which Perl has with AUTOLOAD). Lua 5 just got coroutines, lexical closures, and tail calls - sounds an *awful* lot like Scheme, no?
-toomuchPerl
If languages are defined by their community, then PHP is not a real language, because the vast majority of PHP coders I have seen are idiots. PHP is coming up alongside VB and Java as the #3 language for web hacks (by hacks I mean people who DO NOT know what they're doing ;-) to learn.