I've never understood the hysteria around Perl 6. Which is to say, I don't get why sooooo many people like poking at it as if it's a "weakness" of the Perl community, that it's vapourware or it's being done wrong and so forth. I've skimmed the Perl 6 design notes meetings since chromatic started publishing them. I've repeated peeked at how many spec tests Rakudo is passing. I've perused moritz's excellent Perl 5 to 6 posts which were awesome. I haven't gotten deep into Perl 6 though because I just don't have the time at this point in my life. But I will. Hopefully on Rakudo * as that's about when my life should slow down a notch. Because I know it's coming. Because I know there are great people like Patrick working on it. Because it's interesting. Because I can. At the same time I know Perl 5 isn't going anywhere for a while either... and I like the new stuff perl5porters have been doing there. I'll happily hack at Perl 5 for years to come. So, thank you Patrick, particularly in this difficult time for you. Thank you for your work. Thank you for your time. Thank you for caring about doing something right. People need to stop worrying about Perl 6 and let these folk do what they need to. NOT having Perl 6 right now hurts no one. If you really have an issue with how it's being done, get involved. I think "Anonymous Monk" does serve a purpose but I'm always sad when it's used as a shield so someone can pass judgment or be unreasonable or just plain rude. Be constructive and be helpful. meraxes

This is a good point to also add my personal thanks to you for the well-reasoned responses to the FUD both here and in other forums like Ars Technica. I do really enjoy it when you and others are also shining lights through the smoke screens that some authors keep throwing up (although not as much as I would enjoy not having any smoke in the first place). Thanks. Pm

Here's another anonymous monk, aren't those guys annoying? Anyway no disrespect to anyone, and I wish Patrick and his family all the best. I'd like to say that I think the Perl 6 team is doing a great job, it's a difficult task with few people people working on it. But "the hysteria around Perl 6" is basically the following: We got Perl 5 in 1994, around 2000 we got the Perl 6 announcement and initially had a submission process for new ideas. If you read some of these you'll see that people mostly didn't want to turn Perl 6 into the total rewrite it has become. Most of the suggestions were along the lines of fixing the return value of chomp, giving us a better object system, or fixing path handling. How about having a built-in way to slurp a file? In short, Perl 6 might have been basically a re-iteration of Perl 5 in the same way that Perl 5 was for Perl 4. Only this time we could break backwards compatibility to fix some of the hairier bits. Had this been done we might have gotten something in 2-4 years that was production ready (ran all of CPAN) and cleaned up the worst warts. Had we cleaned up the worst parser edge cases you might be running jPerl on your JVM now instead of jRuby. Instead Perl 6 took the form of creating Carl Sagan's apple pie. Before it could be created they were going to invent the universe. Parrot was to be created from scratch not only to run Perl 6, but to run everything. Perl 6 was going to change everything. We weren't going to use CPAN, but a all new CPAN6 (still no sign of it) etc. The rationale for Parrot in particular seems a bit suspect in retrospect. It was claimed that there was no existing VM that could run a lot of dynamic languages, now it turns out that the JVM/.Net can do that just fine (the VM isn't static, it was just Java that was), and of course there were already Lisp / Scheme VMs (Guile is now running multiple languages). 10 years later we still don't have our apple pie. I'm not contributing (much) so I'm not complaining. But it's interesting to speculate on what could have happened differently. Maybe we'd have a Perl 6 for 6 years already by now, Ruby would have never taken off as it did, and some of the Pythonists would have come back. Maybe I'd get something else than "Oh Perl, that ugly old crap" and "Perl 6? Aren't they writing DNF in that?" from people at (non-Perl) conferences, but alas. Perl 6 is really neat. But even if Rakudo steams on ahead we're probably 2-3 years away from anything approaching a feature complete and usable compiler for Perl 6 with a basic module library. We're probably going to need another 5 or so to get decent Perl 5 <-> Perl 6 integration and uptake.

In short, Perl 6 might have been basically a re-iteration of Perl 5 in the same way that Perl 5 was for Perl 4. Only this time we could break backwards compatibility to fix some of the hairier bits. The problem is that--with that process--it still takes eight years to build Python 3, and then you don't get an object system like Moose, you probably don't get pervasive laziness, you don't get pervasive closures, you might get hypotheticals, you don't get grammars, you might get continuations, you probably don't get custom operators, you might get multi dispatch, and you probably don't get a rethinking of context and the type system. You might get multiple implementations cooperating around a canonical specification. You almost definitely don't get a self-hosted grammar as part of that specification. You don't get roles. You get Perl 5 with some of the worst bits of Perl 1 - 4 removed. Yippee. Also you're very, very wrong about the JVM. Invokedynamic is only the start, unless you want to throw away partial binding, multiple dispatch, continuations, coroutines, lightweight concurrency... or spend the rest of your life writing trampolines.

Some notes below your chosen depth have not been shown here

Some notes below your chosen depth have not been shown here

Some notes below your chosen depth have not been shown here

Here we go again, a post that is almost entirely filled with speculation divorced from reality... (see how many "might haves" and "maybes" there are in the post). If you read some of [Perl 6 RFCs] you'll see that people mostly didn't want to turn Perl 6 into the total rewrite it has become. Most of the suggestions were along the lines of fixing the return value of chomp, giving us a better object system, or fixing path handling. First, I claim that "giving us a better object system" (i.e., Moose) would not have happened without having first having had the opportunity to see what would be done by a total rewrite. (In particular: multimethod dispatch, function signatures, strong typing, invariant sigils on variables, and twigils.) Second, I think that what Larry and the cabal eventually discovered (I wasn't there at the time) was that you couldn't incorporate most of the new suggestions into Perl without first going through a total rewrite. Yes, some of the ideas from Perl 6 are now making it into Perl 5, but I claim that this is possible only because the ideas were discoverable as part of the exercise of creating a total rewrite. Even if you claim the new concepts would've been achieved via a simple re-iteration, I'll still contend that the evidence shows that the timeframe wouldn't have been significantly shorter than what we have now (see below). In short, Perl 6 might have been basically a re-iteration of Perl 5 in the same way that Perl 5 was for Perl 4. Only this time we could break backwards compatibility to fix some of the hairier bits. I wasn't involved at the time of the RFCs, but my understanding is that the issues involved in bringing these new features to Perl were (and still are) far greater than simply dealing with backward compatibility. A number of Perl 5 experts have told me that the other reason for "total rewrite" with Perl 5 is that fixing Perl 5's core codebase would also take a huge amount of work and have uncertain chances of success. And guess what, those experts were correct -- it took 7.5 years to get from Perl 5.6 to Perl 5.10. Thanks to the heroic efforts of a number of pumpkings and core hackers, the Perl 5 codebase of today is orders of magnitude improved over what existed in 2000. But I also believe (from what others have told me) that many of the fundamental problems are also still present. (Anticipating those who will say "Perl 5.10 would've arrived much quicker if we hadn't gotten distracted by Perl 6", please (1) cite your evidence for such a claim, and (2) note that many well-known Perl 5 experts and insiders, including pumpkings, strongly disagree with the notion that work on Perl 6 has impeded Perl 5 development in any significant way.) Had this been done we might have gotten something in 2-4 years that was production ready (ran all of CPAN) and cleaned up the worst warts. Had we cleaned up the worst parser edge cases you might be running jPerl on your JVM now instead of jRuby. I think this is even more speculation contradicted by available evidence. I don't know of any Perl 5 core hacker who seriously contemplates making significant changes to the Perl 5 parser, or that such changes could reasonably happen in just a few years. And I certainly have plenty of evidence available to indicate that even minor changes to the Perl 5 parser have taken years for evaluation, testing, and being incorporated into an actual release. Several Perl 5 experts (again, including former and current pumpkings) have told me that Rakudo and Perl 6 remain Perl's best (and some say only) chance for Perl (both 5 and 6) ever making it to the JVM or .Net virtual machines. And anyone who wants to port Perl 5 to other virtual machines would certainly want a better parsing engine than what is currently available, which brings us back to needing a new grammar engine, which brings us back to needing Perl 6. It was claimed that there was no existing VM that could run a lot of dynamic languages, now it turns out that the JVM/.Net can do that just fine... Okay, you're essentially accusing the Perl leaders of 2000 of having imperfect foresight. And you're omitting the fact that JVM and .Net weren't at all "open platforms" then (and in many ways they still aren't), so if "the new Perl" needed something not available through those VMs at the time, there was little chance of having that something added in a timely manner. Regardless, the debate about whether Perl should have pursued a new VM is ultimately a red herring in my book. My other points still stand-- even using Perl 5 as the underlying VM it has taken Larry a couple of years to write up a parser for our new language. And from an early date that parser has required Perl 5.10 and Moose, neither of which were available in any sort of usable form until 2007 at the earliest. (I grant that it's entirely plausible that Larry could've created his standard grammar implementation using 5.8 and without Moose. But my speculation is that Larry would've instead taken the time to design something like Moose and the additional features he would need in 5.8 to support the grammar. Which, if you think about it, is in fact exactly what has happened. :-) 10 years later we still don't have our apple pie. Answer 1: I have an apple pie, and a new and better tasting apple pie shows up at my doorstep each month. Perhaps the apple pies I'm receiving aren't sufficiently cooked to your culinary standards (yet), or aren't the type of pie you're looking for, but it's wrong to claim there aren't any apple pies being produced. Answer 2: Maybe you don't have your apple pie yet, but I guarantee that your Perl 5 pie is now much tastier and better for you because of the work that has gone into making the Perl 6 apple pie. But it's interesting to speculate on what could have happened differently. Maybe we'd have a Perl 6 for 6 years already by now... No, you'd likely have a Perl 5.10 that would be called "Perl 6". And you would have only had it for two years (Perl 5.10.0 was released in December 2007). It would probably be seen as having the same level of "incremental improvements" over Perl 5.6 that Python 3 does over Python 2, and with a similar (slow) adoption rate. It probably wouldn't have had the ~~ smart match operator, cited as "the most exciting change" in Perl 5.10 over Perl 5.8. It would still be considered ugly (many people find Perl 6 much less ugly by comparison). And Ruby and Python would still be where they are today. If the speculations being offered were being used to improve on what is happening today, then I might agree that it's "interesting to speculate". But much of what I see is speculation used to justify FUD like "10 years later we still don't have our apple pie" and "We'd have Perl running on the JVM by now", i.e., statements that I find to be totally unsupported or contradicted by the available evidence. Pm

Some notes below your chosen depth have not been shown here

Thank you this was the best anonymous post in a while expressing much of my thoughts much better than I could. I wholeheartedly support the "Rakudo/Parrot/Pugs/Ponie/whatever..." team but IMHO most of the problems and tensions are the result of a communication tragedy. Honestly, Perl6 should be renamed into something like Perl++. It's much more than the next evolutionary step of Perl5, it's incorporating revolutionary concepts which can't be achieved in normal release steps.. But at the same time we are living in a marketing world, where the crowd measures the quality of a product at the release numbers. Releasing a Perl5 compatible successor, maybe just bundling Moose for OOP and Coro for multithreading and maybe some syntax cosmetics and restriction³ to contradict the "write only language" complaint would easily cannibalize the Ruby spectra like they are actually cannibalizing the Python spectra.¹ But sadly such a successor can't be named Perl6, because this name slot is already taken. And at the same time the "Perl++ team" has to cope with the burden and pressure of the whole community impatiently waiting for a answer to the contemporary needs. They are constantly forced to justify why they are making gold, where the market just needs iron to be turned into steel. ² Thats a marketing desaster! Perl5 is somehow in the situation of Neanderthals who are told by the gods that further evolution is useless because Sapiens Sapiens will arrive in Europe and wipe them out. Actually it took thousands of years to replace them ... Cheers Rolf UPDATE: added links and to title and improved language Footnotes: ¹) It's so paradox to see how a beautified syntax on Perl semantics plus Smalltalk object model named Ruby easily takes steadily growing market shares .... ²) and let me be clear Perl++ IS gold, but meanwhile our customers live in the stone age and are going to other jewelers to buy gems made of iron... ³) perl critic but anal!

Some notes below your chosen depth have not been shown here

Only this time we could break backwards compatibility to fix some of the hairier bits. (...) Had this been done we might have gotten something in 2-4 years that was production ready (ran all of CPAN) Who else spots the logic error in here? Perl 6 - links to (nearly) everything that is Perl 6.

Some notes below your chosen depth have not been shown here

Some notes below your chosen depth have not been shown here

If it's further consolation, my reply—Re^2: How to Implement Perl 6 in Ten Years—to the paragraph you quote originally began, "Really, really stupid." I swapped it for "naïve" as a concession to civility and part of my court ordered community service. I think you guys are amazing and I feel so lucky to be a Perl hacker; the only career that matches my personality and pays more than janitorial work. I have many thoughtful, patient, creative, caring persons like you to thank for my situation. Thank you!

When I first read your reply in the other thread (long before I finished my response here), I felt that "naïve" was in fact stunningly appropriate. I'm glad you chose it instead of "stupid". Pm

Perl 5 is enjoying a renaissance, Perl 6 is rocketing along, and people are complaining? pmichaud and others are out there having a crack at building something truly revolutionary. Cheer them - the Perl community would be a lesser place without them.

I wish you and your family the best! Take care! Peter (Guo) Pei

You are right no body really understands the complexity behind what you are trying to build. But ask yourself this question, How are they to understand when you haven't told it to them? The biggest problem in communication is to assume that its already done. When people hear about Perl 6 initially, they probably read the FAQ or some other feature list. And they assume this a feature rich but Just-Another-Compiler. No body really understands what it means to have a mutable grammar,or some of the cool stuff that Perl 6 has! But how do we expect them to understand when they don't know about it? Chromatic's post clarified a lot of misgivings people had about the decade long history about Perl 6. If there was one similar post regarding how difficult it is to build this kind of a compiler it will be great, And that post must be communicated to some Open Source news forums where hackers hang out frequently. People will then get a clear Idea and stop criticizing you for the wrong reasons. People who criticize you are not your enemies but your friends, indirectly they give you a temperature check of whats brimming in the community. We fight so passionately with people whom we love not our enemies. Lastly think about those who don't complain but just give up and leave, From past few years Ruby and Python scored some undeserved points because of all this FUD. All the best to you and Rakudo team, we are eagerly waiting for "The Release".

Perl 6 and Parrot links is a comprehensive link collection about everything Perl 6 and Parrot VM.

Yes you are writing about Perl 6, Speaking about Perl 6 etc. My point was not about that. But rather about explaining people why building a Grammar engine for Perl 6 is so difficult, as I understand that has roots in the mutable aspects of Perl 6 Grammar.

You are doing a great job, absolutely no doubts about that. But in this world you have to blow your own trumpet. Giving people a feel of(Technical matters of the compiler, not features of the language) will do a lot of help.

Some notes below your chosen depth have not been shown here

>> You are right no body really understands the complexity behind what you are trying to build. But ask yourself this question, How are they to understand when you haven't told it to them? >IMO, this is more FUD ("Nobody is talking about Perl 6"). Here's an off-the-cuff and horribly incomplete list for 2009, in no particular order: Sorry, but how many of these posts are talking about the complexity behind Perl 6? I know some of the people and read a lot from them, I also read Dan Sugalski's blog from start till burnout. I suppose most of these posts have the aim to keep people interested and get them involved and NOT to lower expectations or criticizing the complexity. This is for sure a fantastic project, but we should start getting realistic about it. The Perl community could have massive boost just by making a big release with "boring features"Â¹ but could then easily challenge the "sex appeal" from Ruby and Python. Just like a plane is followed regularly by a bigger plane to keep the market interested and not by a rocket. And I'm sure this major release would a) put lots of pressure away from your team and b) build a bridge to your project by incorporating concepts c) therefore push the further development of it! Cheers Rolf Â¹) Nota bene: I don't say YOU are to implement these boring features!

Some notes below your chosen depth have not been shown here

if you want to never finish something you will do as much press conferences and presentations and articles as you'd like. and let chromatic write entire shelves and fill up a library of Alexandria with his books. on the other hand when you're determined to get some stuff done, you will pull the damn ethernet plug from your computer, or close your wifi connection and go dark and just hack.

pmichaud, I must admit that I'm ashamed at the utter lack of respect from some of the immature monks. I certainly appreciate/applaud your efforts and all of the Perl 6 team, and I recognize that you all could be doing anything else, but somehow manage to ignore the petty noise. Thank you all for your collective efforts. My conspiracy theory is that anonymous monk is not even a Perl programmer, but merely a troll trying to move his pet language up the TIOBE chart by denegrating all things for which he knows nothing about. Great jobs, troll(s). Now that you've distracted them, can you please let them get back to work?



What can be asserted without proof can be dismissed without proof. - Christopher Hitchens

Personally, I think that you would do well to stick by your original self-admonition: Responding to garbage being spouted by anonymous person(s) probably ought to not even be anywhere on my radar. You are right. It shouldn't. All of us, throughout the greater Perl community, are tremendously in debt to the senior developers and computer scientists such as yourself who have collectively done so much for the various versions of Perl; including those yet to come. Your work stands for itself.