9 ms·
The Perl 6 project 10 years old today
- deleted 16y ago[deleted]
- jbellis 16y ago"I count 33 synoptic documents at perlcabal.org. Synopses 2 through 6 tend to be fairly stable, although changes still occur. The remainder of the synopses are still drafts for the most part, awaiting more feedback from implementations and language use." This is why when people like chromatic invariably comment in a "still waiting for perl 6 thread" that "you can write perl 6 now!!11!" I roll my eyes. (Quietly. So they'll go away.)
- perlgeek 16y agoThat's not what I call "quietly", fwiw.
- ekiru 16y agoI'm not sure how much Perl 6 chromatic writes on a daily basis (I'm mostly only familiar with his work on his book and the Perl 6 book and his magical ability to constantly find another 2-6% performance improvement for Parrot), but there are quite a few people writing Perl 6 already. Obviously there are people working on Rakudo and other Perl 6 implementations that spend their time writing Perl 6. But there's also people writing wikis, NES emulators, testing tools, build systems, and many other things in Perl 6. When people like chromatic say that you can write Perl 6 now, they aren't speaking based on hypotheticals or beliefs; they're speaking from experience. And, in my personal opinion, despite the NYI status of some things, bugs in the implementations of other things, and slow performance, writing code for Perl 6 is an amazing and wonderful experience. No, I wouldn't rewrite mission-critical systems on which people's lives depend in Perl 6 yet. Yes, I might write systems on which my life and future depend in Perl 6 right now. I definitely would and do write my side projects and one-off scripts in Perl 6 right now.
- mst 16y agoPeople can, and are doing. Much though I'm a happy perl5 programmer, I often use bleeding edge libraries in my implementations when I'm sure that's the best approach (and if it's code for a client after careful consultation with them). People I know doing rails work often use stuff they know may change under them because it lets them ship faster now and they consider it an acceptable trade-off of risks - and the gems they're using generally don't have a spec document at all. There are risks involved in every technology choice made for every program. If I didn't actively prefer perl5's semantics and community philosophy in a number of places, I'd be seriously evaluating perl6 for use in code where I could guarantee deployment to be pinned against a particular runtime version, just like I -do- use API-unstable perl5 libraries where I can guarantee deployment against a particular library version and the benefits in terms of delivery time outweigh the risks.
- chromatic 16y agoThis is why when people like chromatic invariably comment in a "still waiting for perl 6 thread" that "you can write perl 6 now!!11!" I roll my eyes. Almost five years ago now I ported a piece of Perl 5 code used millions of times a day to Perl 6. Where is the hyperbole in my statements?
- koenigdavidmj 16y agoWell, you can't just leave us hanging like that. What's the program?
- mkramlich 16y ago10 years is also about how long ago I abandoned Perl
- wazoox 16y agoToo bad, it got much better in the meanwhile (particularly in the last few years).
- trainwreckin 16y ago10 years too early, I'd say. You're missing out on the fun stuff.
- jamespitts 16y agoThere's nothing wrong with taking 10 years to create something new. Since they began, I've taken serious ganders into java and ruby. Now that I'm back in the perl camp I find that I know a lot more about programming in other cultures. And now that the community is just about done, I can apply what I've learned using a "language" unprecedented in flexibility and capability.
- masak 16y agoOne post like yours, sir, makes it worth trawling through a hundred posts by churlish detractors. Thank you.
- sreque 16y agoPuts on Perl troll hat You must not have learned too much, or else you'd have no reason to go back! :)
- loewenskind 16y ago> I can apply what I've learned using a "language" unprecedented in flexibility and capability. This right here is what I've always hated about the perl community. It's so rare to find a perl user who can mention the language without spouting these kind of exaggerations and untruths. Of course you could always prove me wrong by demonstrated how perl is "flexible" and "capable" in a manner that is unprecedented [1]. [1] un·prec·e·dent·ed adjective without previous instance; never before known or experienced; unexampled or unparalleled: an unprecedented event.
- chromatic 16y agoDo you know of another language community with a library or extension system which rivals the CPAN, for one example? How about the existence of PCRE for another? Along those lines, have you seen Perl 6 grammars?
- loewenskind 16y agoThe post I responded to said "language" so your comment about CPAN doesn't apply. On the second part, I did misread the OP as meaning he would return to perl 5 (probably a false mental cache hit, since this is usually the context of such comments). Perl 6 does indeed have a few interesting bits.
- philwelch 16y agoOne promising thing about Perl 6 was the way it tried to bring parsers to everyday programming the way Perl popularized regular expressions. I'm sad the language seems to have stalled for that reason.
- ekiru 16y agoYou're almost exactly right there. One promising thing about Perl 6 is the way it brings parsers to everyday programming the way previous Perls popularized regexes. :) Perl 6's approach to syntax, operators, grammars, language extension, etc. is like Common Lisp's reader macros; except that Perl 6 makes them easy and composable. Common Lisp libraries tend to use reader macros very sparingly because it's hard to make them play together nicely. Perl 6 makes it easy to alter the syntax in ways that play together nicely. Many of Rakudo's core operators are defined in normal Perl 6 code. It's trivial to make new ones of your own. The more extensive grammar modifications aren't quite there yet, I think, but it'll happen, and it will be revolutionary. Fortunately, it hasn't stalled. It's moving along quite well.
- rwmj 16y agoHow does it compare to camlp4? Camlp4 extensions are mostly composable, provided two extensions don't directly conflict with each other.
- ekiru 16y agoI'm not very familiar with Camlp4. I tried skimming the tutorial to see if some of the big benefits of Perl 6's syntactic extension are there, but couldn't tell. Are Camlp4 extensions lexical? Can you load some syntactic extension within a single function and have it apply within only that function's lexical scope? If I understand Camlp4 correctly, it's essentially a pre-processor. It's a very powerful pre-processor, perhaps, but you'd probably have to work very deep magic to be able to replace the Ocaml parser for a lexical scope. This is not yet implemented, but eventually you'll be able to do 'supersede slang MAIN { ... }' and rewrite the grammar the current lexical scope. How easy is it to use Camlp4 extensions from OCaml programs? In Perl 6, it's a simple matter of "use SomeModule;". Here's the code of a module to provide a factorial operator. module Factorial; multi sub postfix:<!>(Mu $n) is export { [*] 1..$n; } And an example of using it: use Factorial; say 5!; # outputs 120 This is actually essentially how many of the built-in operators are provided in Rakudo. The ones that aren't provided in this way are the ones like || and && with short-circuiting semantics which need to be evaluated specially and the ones that are better implemented in PIR. I'm afraid I don't have any examples of more extensive grammar modifications, as Rakudo doesn't have much support for them yet. More accurately, it doesn't have support for adding them in mid-parse yet; it's fairly simple to create a new grammar class deriving from Rakudo's Perl6::Grammar with a few modifications and parse files with it.
- zokier 16y agoAfter reading that, it seems like Perl has rather nice community. If Python has engineers and Ruby rockstars, then I'd say that Perl has hackers.
- davidw 16y agoI kind of toyed around with adding a little addition to langpop.com looking at the 'rockstar ratio': overall popularity compared to "rock star" sitings in the job ads. Never got around to it though...
- sjs 16y ago> Python has engineers and Ruby rockstars This meaningless statement really bugs me. People who write Python and Ruby aren't rockstar engineers. They're just programmers/developers/[whatever you like to call them]. People who speak English are simply English speakers. Nothing more can, nor should, be inferred from that fact.
- reitzensteinm 16y agoI think that people blow it out of proportion, but the primary language choice (and I do mean the language they use when they can chose) of a developer does imply something, however small. Assembly programming is different enough to Ruby programming that it does imply something about a person that prefers working in either the former or latter environment. However, the reason I agree with you and upvoted you is that Ruby, Python and Perl are so similar in mindset that anything you might learn from those choices is basically lost in the noise. It's like trying to figure out what a person's choice of colour of parachute means... which is silly, but the fact that he or she skydives does mean something.
- sjs 16y agoI like Ruby and assembly (and C, Python, Lisp, JavaScript, ...). So I agree that one's primary language may say something about them, but that something might only be that they happened to land a good job doing X.
- 16y ago
- sambeau 16y agoI'd like to mention Dan Sugalski who, before Audrey, was a similar whirlwind for the Parrot project. He too was sadly burnt out long before his time. I highly recommend perusing his well written blogs that wonderfully explain difficult programming topics. http://www.sidhe.org/~dan/blog/ http://www.sidhe.org/~dan/blog/
- sambeau 16y agoHis "What the heck is" and "What the heck was I thinking?" are particularly good.
- ww520 16y agoDidn't someone say it take 10 years to develop great software?
- adbge 16y agoI think you're referring to the belief that it takes 10,000 hours of practice in order to "become a world class expert in anything." This "10,000 hour rule" was made famous by the book Outliers and is primarily based on the research of K. Anders Ericsson. 10,000 hours of practice is often equated to 10 years, though I'm not sure if the book explicitly makes this parallel.
- neilk 16y agoYou're probably thinking of Joel Spolsky's "It Takes Ten Years To Develop Great Software. Get Used To It". http://www.joelonsoftware.com/articles/fog0000000017.html http://www.joelonsoftware.com/articles/fog0000000017.html However, Joel explicitly states this means you release early, and iterate.
- chromatic 16y agoPugs first came out in 2005, and by my count it was the third implementation of Perl 6. Rakudo's a couple of days away from its 31st release. Yes, Perl 6 should have had regular releases much earlier than 2005, but we've used iterative development for years.
- rbanffy 16y agoThe first production-ready release will be on GNU Hurd, right? ;-)
- nicpottier 16y agoPerl 6 is the Duke Nukem of the programming world.
- openfly 16y agoIt's a spring chicken compared to Enlightenment.