tags:

views:

404

answers:

3

What is the current state of Perl 6, is it production-ready? Where do we stand right now? There are many programmers curious about the current progress of Perl 6.

There are also two other topics open on on reddit and http://perlmonks.org/?node_id=835419 about this.

+10  A: 

Perl 6 is not production ready using most common definitions of "producion ready" as per SO's own thread - the implementations are not stable and possibly lack full features of the specification.

Please see this SO answer for details on the status as of 2008. The language specification seems stable (at least as per brian d foy in the linked post) but the implementation is not there yet.

As for specific dates, as per this post on 04/08/2010, the first major release of the most far-ahead Perl 6 implementation - Rakudo (on Parrot VM) - named "Rakudo Star 1.0" is tentatively aimed at Q2 2010 (original plan was around April 2010 but was shifted due to personal circumstances involving lead developer).

Of course, YMMV - I have seen people use a LOT less stable code/projects in production (including what they themselves wrote) than Perl 6's current state. But I personally wouldn't even begin to dream about deploying Perl 6 until it's been widely released for a while.

However, please note a very important point: the above does not mean that Perl 6 is vaporware or that it should not be learned - it does sound like it's progressing well and therefore I personally intend to start digging into it (well, already have thanks to SO) ahead of time so I'm ready to use it when it's stabilized a bit.

In addition, I'd like to add that a large chunk of great Perl 6 functionality was back-ported to Perl 5 (in 5.10-5-12, and see Perl6:: modules), so the above point about learning Perl6 is extremely relevant even if you don't have immediate plans to deploy Perl 6 itself.

DVK
thanks, because a lot of people involved with Perl6 tend to say "depends what your definition of production-ready is" which kind of bullshit because there's not much dissension about that ... it's kind-of clear what production-ready means
Cobalt
Yes, it's so clear. Perl 6 isn't production ready and DVK has seen much less stable code in production.
David Dorward
@David - no contradiction at all. Something being in production doesn't qualify it as "production ready". Not according to my definition but definition voted as the accepted answer on SO.
DVK
None of those answers have more than two votes, hardly a ringing endorsement.
David Dorward
@David - if you have a different definition of "production ready" (which is of course a bit subjective, hence my YMMV hedge), please cite it and indicate how Perl 6 relates to that. If you are disputing my assessment of the code that I have reviewed (and some, heck, written) that went into production and was WAY rawer/greener than current Rakudo seems to be, please indicate the basis of such a dispute. Thanks.
DVK
My point is just that there *are* different definitions of production ready, so it isn't all that clear cut, and accusing "a lot of people involved with Perl6" of talking "bullshit" is unfair as well as rude.
David Dorward
@David - who specifically accused "a lot of people involved with Perl6" of talking "bullshit"? Either you're confusing me with someone else, or you're reading a context in my answer which is completely opposite from one I actually tried to convey. Also, you didn't provide your own definition backed up by, say, and example of a production (as per your definition) project implemented on Rakudo
DVK
@DVK — Cobalt did, in the first comment on this answer.
David Dorward
@David - ok, I agree that this was rude, didn't recall that comment.
DVK
However, in the absence of specific proof - such as a big production (you can read that as "money ride on it") project stably and successfully implemented on Rakudo - stating "it depends on your definition of what is is" does sound entirely Clinton-esque; and had I gotten such an answer, I'd politely reply that it should not be done by the project team. That just turns people who actually DO care about such things as stability and uptime completely off; instead of welcoming them to help like "we are missing X, Y and Z, and appreciate help" would do.
DVK
By saying "depends on your definition" they are trying to highlight uses of Perl 6 outside of enterprise, for example open source projects, personal scripts, use in academic fields etc.
rjh
@rjh - are the first 2 really what majority of people would include in "ready for production" without any other context? I could be wrong but I would say no. "Ready for some use" is a lot less misleading.
DVK
BTW, I added my own somewhat rambling answer to the "production ready" question, hopefully this will somewhat clarify what I meant without creating over-long discussion thread in this question.
DVK
My own personal answer for "is Perl 6 production ready" would be "it will be when i can point my management to several examples of major projects stably running on it at big companies, with no major stream of bug reports and with a settled/finalized API and close to 100% test coverage". Because without all of these, the management will reject any requests by me to even remotely consider using Perl 6 in production.
DVK
@DVK - I think most modern languages fail your own personal definition of production ready. Bug reports are far more often associated with the quality of the code written than the compiler that executed said code. That said, I think I could make an argument against PHP on almost all grounds you cite, but would not say it's not production ready. Then again, your organization may have higher standards than that, and if so, I applaud you for it. It may be important to distinguish that certain subsets of an implementation may be considered production ready while others not.
kbenson
@kbenson - I agree with the last part (certain subsets of an implementation may be considered production ready while others not), but again, I'd love to hear which subsets of Perl6 fit that. And I mean "love" - i'm just looking for an excuse to finally try out Perl 6 which I was looking forward to for many years.
DVK
@DVK - Whatever is in Rakudo Star, which I admit I'm a bit hazy on, should quickly become stable if not already so at release. Indeed, the whole purpose of that release is to produce a stable subset of features that can be used without worry to get perl6 in use. It was due out this month, but the project lead had family health problems, so it's been pushed back (hopefully not far). The best I can find for a release date now is Q2.
kbenson
@kbenson: it was always planned for Q2 2010, just shifted from April to June.
rjh
"when i can point my management to several examples of major projects stably running on it at big companies" is something that is entirely out of the hands of Perl 6 developers. How can anyone possibly predict that?
Andy Lester
@Andy - that was meant as a litmus test for when I can agree that "Perl 6 is production ready" for my own use; and not as a "what is the deadline when it will be true?" question to the Perl 6 team. I fully agree with you that answering "and when will that happen?" is not really possible, at least at this early point
DVK
+13  A: 

Firstly, and most importantly, follow the Planet Six news aggregator. Perl 6 weekly meetings and blogs from the lead developers and many members of the community are included, and it's a great way to keep up on the progress of Perl 6.

To get an idea of how Rakudo Perl, the leading Perl 6 implementation is doing, check out the Perl 6 Advent Calendar. Every day shows a different facet of Perl 6, and the extent to which it has been implemented right now by Rakudo.


Perl 6, as a specification, is still undergoing constant refinement and refactoring. Some examples of where the spec is unclear: the object hierarchy, what should and should not be part of the core library, date handling, laziness, 'auto-threading' of junctions. But the bulk of the language has been finalised. The spec is very ambitious, and IMHO is one of the major reasons why Perl 6 has taken so long to get going.

In terms of implementation, the leading project is Rakudo Perl 6, built on top of the Parrot VM. There are perhaps a dozen dedicated developers and many more who are helping test, write libraries, code and documentation. Most development work is funded by grants from the Perl Foundation and community, so there is no reason to expect it to peter out.

Rakudo has plenty of bugs and plenty of missing functionality. It has only recently undergone a huge refactoring - the 'ng' branch. Browse any existing Perl 6 source and you'll find plenty of comments saying "Rakudobug" or "Rakudo doesn't yet implement this..."

Even so, this paints an unfair picture of Rakudo. The Perl 6 specification is ambitious to say the least. The language has such an insane number of features that it has taken implementations years of development to get to the level they are at today. Rakudo is certainly complete enough for people to have written text-based games, wikis and other web applications in, and it's getting better every day. Developers have written around 40,000 unit tests for Perl 6 so far, so it's easy to see improvements in the implementation (Rakudo currently passes ~30k tests, or 79% of the test-suite)

The first "usable" (stable) release of Rakudo is known as 'Rakudo Star'. It is currently planned for Q2 2010 (April-June). The general idea was to implement a large portion of Perl 6 - not the whole language, but a useful subset of it - and minimise bugs. As for production ready, Perl 6 has always had a release date of "Christmas". Perhaps this Christmas, more likely something else. It's going to be a long time before you can use the whole of Perl 6, bug-free, but we're at least going to see a stable release very soon, and hopefully the hype for Perl 6 will snowball from there once people discover that it's real.

If you are interested in Perl 6, you might consider getting involved in the community. From my experience it's a very friendly community (it almost creeps me out how nice everyone is, even on IRC). Install Rakudo, try to break it, file bugs. Write testcases. Write implementations for core functions, write modules. There's plenty to do!

rjh
@rjh - excellent detail. Heck, this post just might be the straw that tips me over into trying just what you suggested (installing Rakudo and trying to implement missing stuff) if I can free up some time this summer. +1
DVK
+1  A: 

Interesting blog posted today by Leon Timmermans about some of the differences coming out in Perl 6.
Why Perl 6 Is Different Not much talk about when those differences will come out.

Stedy