NQP highlights a serious problem with Parrot.
Parrot 0.5.0 was released just over a week ago. As this article discusses, one of the major changes was the transition to NQP.
While NQP brings some very interesting technical benefits, it also further shows one of the significant problems with Parrot that I identified a couple of months back. Namely, the near complete lack of design and architecture stability as the project matures.
It’s no wonder we see so few usable, production-quality language implementations for Parrot. Developing such an implementation is not a quick nor easy task. And so with such drastic changes happening to such core components of the Parrot architecture, it would be quite foolish for a programming language implementor to target it.
My hope is that the implementation of NQP will finally lead to the stability necessary for a usable, practical Perl 6 implementation. Perl is, by its name and nature, meant to be a practical language. While there is value to experimenting, sometimes we need to just sit down and get it done when it comes to implementing software that’s usable in the “real world”.
Making these major infrastructure changes again and again, without ever really implementing anything on top of them, seems to be keeping Parrot back. While platforms like .NET and Java offer some degree of stability, we’re just not seeing that from Parrot. And that’s a main reason why it’s falling so far behind.
December 2nd, 2007 at 10:54 am
Parrot and this article related links:
* http://www.ohloh.net/projects/4406?p=Parrot
* http://www.perlfoundation.org/parrot_grant_from_nlnet
* http://www.oreillynet.com/onlamp/blog/2007/08/constraints_and_software_devel.html
* perl6.cz/wiki/Perl_6_and_Parrot_links
January 22nd, 2008 at 8:53 pm
I have to disagree with your assessment. No one’s code stopped working when NQP came out. It’s a new layer that modularizes and abstracts the previously low-level (TGE) way of transforming ASTs. Many examples in the languages directory of the Parrot source tree don’t actually use NQP because they pre-date it, and that’s fine.
Your comment makes me think of someone seeing the first release of libwww-perl and saying, “this demonstrates that Perl is not a stable programming language.”
If Parrot comes out with a debugger, will that also demonstrate that it isn’t stable? What about an internationalization toolkit?