Fellow Parrot committer Andrew Whitworth raised the question how Parrot can become a mature platform for language development. His argument is that a focus on threading and a focus on JIT is necessary for enterprises or language communities to consider Parrot a useful platform.

I can see his point, and yet (as usual) I challenge the terms of the debate itself.

Edit: Andrew has responded at Woe is Parrot. I appreciate the nuance in a discussion of success criteria.

Is Perl 5 not a "mature" platform because it favors a shared-nothing (by default) threading model? Is Python 3 not a "mature" platform because it has a global interpreter lock? Was Java an immature platform until you could rely on its memory model and the presence of native—not green—threads on every platform on which you depended? (I used Blackdown Java for quite a while on GNU/Linux.)

Is Perl 5 not a "mature" platform because it lacks a JIT? Python 3000? Ruby? PHP? C++? Does linking against LLVM automatically turn an "immature" platform "mature"? Does Zend's opcode cache promote PHP from a toy language into a Language For Serious Internet-Scale Business? (Does it whiten your teeth? Does it freshen your breath? Does it provide a flea barrier to your pets while making you irresistable to members of the appropriate gender?)

That's one way to define "mature".

I prefer defining "mature" by answering the questions "Does the software do what its developers claim it does?" and "Can you rely on the developers to make and meet their commitments?"

I don't understand the argument that a tool must support a particular use case for some people to consider it "mature"; is Perl less "mature" than Java because LAMP applications tend to prefer a shared-nothing architecture with a distributable (and optional) cache over a single beefy box with a shared-everything memory cache.

Likewise, is Perl 5 anything less than capable because of the existence of PDL or Python because of NumPy?

(Did Gmail only become a serious application after the invention of TraceMonkey? Does the fact that I wouldn't use Visual Basic and Access or Foxpro to write a small business application mean that you can't write an effective small business application in either? Does the standard Unix pre-forking network server pattern doom all implementations to history's "Here's a nickel kid, come back when you're ready to play with real software!" dustbin?)

Instead of "mature", perhaps it's more useful to discuss the project's current strengths, its desired strengths, and its roadmap to support new uses effectively. Otherwise I foresee endless debates over who has the more enterprisey needs, and I can think of very few duller, less meaningful arguments.