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.

2 Responses to “NQP highlights a serious problem with Parrot.”

  1. mj Says:

    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

  2. Aaron Sherman Says:

    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?

Leave a Reply

*
To protect against spam, please type the word in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word