Friday, May 9, 2008

Parrot, Forgotten Bird

If you need to do client-side programming in web browsers, you have to learn JavaScript. Google's App Engine requires Python (at least for the moment). To benefit from the encyclopedic CPAN, you need to know Perl. Wikipedia relies on PHP, the Rails framework is written in Ruby.

Those, among many others, are dynamic languages: agile and well-suited for rapid development. Such language diversity is a good thing to have.

What is not so great is that you are forced to use different languages in different environments. We already suffer from information overload - and many times we can't afford to ignore the latest fads. The duplication and wasted time involved are simply too much.

Ideally, we should be able to stick to our preferred language in a project. Having to remember the details of several languages, and context-switch between them, is an unwelcome distraction. Also, the choice of a language shouldn't become a restriction later on.

Those are problems that could be solved by Parrot, at least in theory. Parrot is a language agnostic virtual machine, especially designed for dynamic languages. This is in contrast to the Java VM, which can be quite unforgiving to non-static languages, as I am led to believe.

Beautiful plumage

Decoupling the language from the VM makes a lot of sense. Systems can embed the VM and be amazingly flexible, programmers can use their language of choice and have a plethora of libraries available, language designers can focus on the language proper and use the nice compiler tools provided.

Pushing up the daisies

Despite all those advantages, I see almost no mention of Parrot outside its community. I wonder why. The project has been long in coming, but so were other successful Free Software projects. Perhaps people think its goals aren't technically feasible? The NIH syndrome, language chauvinism?

Does it talk?

Parrot and Perl 6 development seem to be gaining steam, and perhaps we shall see alpha releases by the year's end.

What could it bring in the future? Anything scriptable (eg browsers) using the same stable, optimized VM. A further push against proprietary formats (Flash, Silverlight et al). World peace? :-)

Anyway, here's hoping that Parrot becomes hugely successful.


René Ghosh said...

The version numbers on parrot increment so slowly that a projection to 1.0 lands in a very distant future. Methinks that is what draws potential user's despair.

But all concede that a VM to host dynamic languages is a good thing.

chromatic said...

The version numbers on Parrot increment according to the Parrot roadmap. We welcome suggestions to help potential users find and understand that document.

La don said...

Interesting to know.