Reini Urban wrote:
And I'm tempted to add: Actually even the 1984 version of lisps are
still technically and syntax-wise far advanced over the perl and
parrot state of today. I see not much of a progress.
Philosophically, I agree. In my usual Parrot architecture talk there's a
slide right at the front with a big box saying "Invent your language
here". I talk about how all the major features of programming languages
were invented 30-40 years ago, and people aren't coming up with new and
exciting features any more. Even worse, many systems are just now
catching up to features that were invented 30-40 years ago.
There are a number of reasons why computer science progress has slowed.
(You might have noticed I have a theory about people respecting the work
that went before so much that they're unwilling to try new things.) The
biggest reason is that the state-of-the-art in compiler technology has
grown so massive that it takes 10 years to bring a new interpreter or
compiler up to just the base minimum level of expectation. And once the
developers of a new language have done that, they have no energy left to
spare for the next step, for actually pushing forward the
state-of-the-art. (Which isn't to say they do nothing, just that they
aim for modest refinements that won't disrupt the working system too
much.) Java is there, .NET is there, Python is there, Ruby is there, PHP
is there, Perl 5 is there. Perl 6 isn't there, but you'll notice that
the only person working on Perl 6 who did substantial work launching
Perl 5 is Larry. (You'll also notice that it's taking 10 years.) So, it
fits as a "new" language, though it's more of a "reborn" language.
Parrot is taking the 10-year hit once, so it can provide the
state-of-the-art as a bundled package for new language implementors.
They can start implementing new features on the first day they work on
their new language. Parrot is specifically going for a pluggable
architecture so someday we can rip out that tri-color generational GC
and replace it with a GC strategy that really is innovative. And it's
doing a few new things along the way, like basing the entire control
flow on continuations, and eliminating the stack (one of the chronic
sources of security flaws in modern software).
I'll be the first to admit that parts of Parrot are ugly, because I
spend most of my time ripping out ugliness and replacing it with
cleaner, more maintainable systems. But it has enormous potential, not
only to be a solid, thoroughly state-of-the-art virtual machine, but to
enable other inventors, other technologies, to push even further.
People doing exactly what we're doing, daring to do what's never been
done, is the only way computer science is ever going to progress.
Allison