Perl 6, Early, With Rakudo Star
Perl 6 may have been "finally coming within reach" in 2004, but now it's even closer. Reader rnddim writes "The Perl 6 implementation Rakudo Star has been released today for 'early adopters.' This release of Rakudo is different from the normal monthly compiler releases in that it is bundled with a draft of a Perl 6 book, and several modules. It's not complete, and it's not as fast as it should be, but Rakudo in its current state is proving to be usable and useful. Rakudo Star releases will come monthly or as major features or bugfixes are made. It is available for download at github.com."
Calling anything whatsoever that involves Perl 6 'early' is the funniest thing I've seen in weeks.
Ice Cream has no bones.
If this had come out in 2001 or 2002, shortly after Larry's original Perl 6 announcement in 2000, then it might be useful. But 2010 is far too late.
Perl 6's ship has sailed. Perl 5, which was already very well established, has had enough difficulty fending off PHP, Python and Ruby. Perl 6 has no hope in hell. The benefits it brings are minimal, and surely not enough to drag anyone away from Perl 5, PHP, Python and Ruby, among the many other languages it's competing against.
Perl 6 is a stillborn fetus, left lying on the ground for a decade, getting all smelly and rotten.
$$][/^&]l/:^$& :&}::*'%'''^';^;
(To prove my point, the Perl that powers Slashdot told me I hit the junk filter. The ironing is delicious.)
The Welcome Rakudo Star post on the new Perl.com explains some of the motivations for the Star releases and why this is such a big milestone for all of Perl.
how to invest, a novice's guide
Seriously. What if a complete, bug-free Perl 6 implementation were released today (as opposed to the "early" version described in TFA)? Would anyone convert existing perl 5 scripts to perl 6? Would anyone write new scripts in perl 6 as opposed to Python or Ruby or Perl 5? Really, would anyone except the most diehard Perl addicts even notice or care about Perl 6?
Perl is COBOL. If you can deal with it without getting sick, there's some steady jobs out there. That's it. Stick a fork in it. It's done.
This is going to be huge! Every application that comes out for the next 10 years will use this I predict.
Just an FYI: I eat paint chips.
The GPL does not require you to make your changes public, stop spreading the FUD. You are free to keep your changes private, just as much as you are free to do so with the BSD and MIT licenses. The only difference is that the GPL requires you to make the source code available to everyone you give the program to under the same license. You are not required to distribute your program to anyone, you are only required to follow certain rules if you do distribute your program.
Palm trees and 8
My business does just fine starting new things in Perl, and I'm by no means alone in that.
how to invest, a novice's guide
Perl is still a great language for processing text, and plenty of people are still writing new Perl programs. The main reason Perl is not trendy anymore is that its strength, text processing, is not as relevant to the trendy programming styles use in webdev these days. Perl's syntax is weird and lends itself to unreadable code, sure, but I have seen horrible code in a lot of other languages and programming models.
There are still plenty of text processing tasks to be done, and Perl is still strong for those tasks.
Palm trees and 8
I'd heard that Visual C# killed Rakudo Star.
How can I believe you when you tell me what I don't want to hear?
And the absence of comparably useful alternatives, something that's no longer the case.
I would be interested in seeing a competitive analysis between Perl 6, Python, Ruby, and PHP for performance and features. My suspicion is that Perl 6, even if it delivers everything it promises, will still fall behind the others, or not be significantly ahead enough to tempt large scale switching from them back to Perl.
Anyone who loves or hates any language, platform, or manufacturer, doesn't know what they're talking about.
Rakudo Star includes a PDF of the Perl 6 introduction book; the print version should come out late next month. Moritz Lenz's Perl 5 to 6 article series is always informative and useful. The official Perl 6 site's documentation page links to current and accurate documentation.
how to invest, a novice's guide
It seems like the current way to be hip in developer circles is to make fun of Perl.
I really want to understand this phenomenon as I doubt most of these people bashing Perl have never even seen any Perl code written in the last 4 years. Hell, I could bet that a lot of people have never seen any *real* Perl code at all.
Perl 5 is a modern language which has the features of other currently more trendy dynamic languages and more. We have modern web frameworks. We have robust database bindings and state-of-the-art ORM libraries. We have have a well-tested modern object-system with optional declarative syntax. Perl is used by several high profile sites which, at this point, everyone already knows (BBC, DuckDuckGo, Slashdot, etc).
Perl 6 is a different language but shares a lot of the common minds behind all these awesome Perl 5 tools. However, even if you don't like Perl 5 for whatever reason keep in mind that Rakudo Star is a completely different thing (as a matter of fact, the name "Perl 6" should probably be dropped in favor of Rakudo - to avoid all this cargo-cult).
Nonsense.
They're significantly different from Haskell's typeclasses, Haskell being a language which tends to avoid the OO paradigm.
I've never used SML or Scala. Can you modify the grammar of the language in place?
Does Haskell offer parametric pattern guards?
Indeed it has, and no one familiar with languages would claim otherwise.
That process sounds much more manual than Perl 6 hyperoperators.
Even if that were true, so what? (Mature poets steal.) My point was that a hypothetical Perl 6 released in 2001 wouldn't have had those features.
how to invest, a novice's guide
This puts a lot of new users to perl in a bad situation. Start learning Perl 5 syntax or jump to the possibly already sinking ship, Perl 6. Hopefully my camel book will be sufficient to learn both from a basic level.
This is not the penguin you're looking for.
I don't know, there are always drawbacks. Python is too inflexible. PHP is inconsistent, opens you up to security flaws, and isn't very good for large projects. Ruby is great but only has a small community backing it and has scaleability issues. J2EE is infinitely scaleable but has a gigantic learning curve, the number of large subsections seem infinite as well. Some people are going to disagree with parts of the flamebait I just spewed, but each of those languages have that reputation, even if it's not 100% earned, and there is definitely room for improvement and innovation in the web-programming world. So it is possible that a new, interesting language and framework could come to the fore in the web programming world.
One thing is for sure, Perl 6 is going to have a dedicated community set to building up and promoting a web framework to go along with the language. Whether the language becomes commonplace on the web or not depends on how well the framework is written, how good the language actually is, and (as you mentioned) if performance is adequate.
Qxe4
most code is written with the intent of releasing
Not true.
Palm trees and 8
Sure. GP is right, and you're wrong.
Fuck systemd. Fuck Redhat. Fuck Soylent, too. Wait, scratch the last one.
Care to elaborate?
One would think the meaning is obvious, but I'll spell it out: the vast, vast majority of code is developed to be used in-house. A tiny, miniscule fraction of code "is written with the intent of releasing an application to the general population."
"Convictions are more dangerous enemies of truth than lies."
Would anyone convert existing perl 5 scripts to perl 6? Would anyone write new scripts in perl 6 as opposed to Python or Ruby or Perl 5? Really, would anyone except the most diehard Perl addicts even notice or care about Perl 6?
Yeah, I can't wait. I like programming in perl and ruby but not python. It doesn't mesh with me. But perl5's object system is a pain in the ass. perl6 takes what I love about java and ruby and expresses it like perl. :my hero:
perl is fast as hell and light on memory. Python tends to eat memory an ruby tends to be slow.
But most important to me is the perl community. Not just the perlmonks nerds, the guys who do release planning, application design, Q/A, test metrics, run CPAN, module maintainers. They do lots of things right.
Ruby is nearly there with GEM's, but darned if getting Rails working isn't an exacting science of matching old GEM versions. Security patch in the latest one? TFB.
Python has some great libraries and frameworks, but CPAN is much more comprehensive.
Which leads to the best part of perl6 - its parrot vm. The perl6 VM has implementations for python and ruby. I'm sure they're not complete or fully optimized yet, but the potential exists. Ruby stuff can run fast, python stuff can run light. And most importantly, we can all share a library - write the module in your language of choice and everybody who's using a parrot language can use it.
perl6 is still the future of high-level open source languages. Whether you like perl or not you should like perl6 because it's what open source is all about.
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
Most of my career has been in telecom/datacom companies, and perl is the preferred language for testing and infrastructure. The last stint I did at a true startup ended in 2003 (I got the hell out) and they used tcl for testing. Since then I've only seen perl. Perl certainly is less popular in CGI and LAMP than it used to be, but that is the only major pull back I've noticed. But it isn't new and sexy, which is fine by me, and that is what many people seem to notice.
That said, I'm not sure if/when I'll adopt perl6. I like much of what I've seen, but I've got an install base to worry about. I either need a killer reason to switch, or a lot of dead time in my schedule. I jumped on perl4 -> perl5 back in the winter of 94/95, but that was such a huge step forward that it could not be ignored.
- doug
As a fairly skilled computer scientist I absolutely hate Perl. I recently inherited a perl project that was fairly large and fairly complex and had to really dig into the more complex parts of perl with it. The biggest problem with perl is it's readability and the fact its a "do what I mean" language that rarely does what you mean. If you've rarely dealt with shell scripting, the logic behind the syntax for it is nearly non-existent. It has a massive learning curve, which is probably why they sell so many damned Perl books. The worst part about perl is that its difficult to look up how things work online. Perl's insistence on using special characters instead of words makes things difficult to read, understand, and look-up, and the number of special exceptions to things make things damned impossible at times when something is syntactically correct and yet still doesn't work right. I've found an amazing number of websites give simple incomplete examples for Perl. For example one popular reference website lacks a lot of useful and common parts of perl, like something as basic as getline.
:r & :x {...}
Trying to remember what specifically was wrong with Perl; issues that eat up hours of time the first time you encounter them or when they aren't freshly in your memory:
having a $1 instead of a $l.
Arrays of arrays. Hashes of hashes. References to hashes of arrays... etc. Then pass them into a subroutine that is part of a class.
Using the debugger.
Trying to understand someone else's regular expression
a mysterious $_ in someone else's uncommented code
A class's function's reference. WTF does "can't create sub Main:: " mean? If I can call the function why can't I reference it?
Trying to use parenthesis to change precedence only to accidentally create an array instead.
Not knowing that parenthesis can create an array
Trying to create a naked hash
Thinking my $a, $b, $c = @something; is the same as my ($a,$b,$c) = @something;
Coming across the heap corruption bug in IO::uncompress in earlier versions
Not knowing how to typecast using squiggly brackets
Not realizing the requirement that arrays and hashes be typecasted after being dereferenced from a reference
Trying to read from standard input
Trying to write to a file
Not understanding the difference between print and printf
Not being able to slice a substring from a string
Not being able to index a character in a string
Trying to use a class like you would in C++
Trying to use a $ when it should be a @ or vice versa.
Trying to see if a file exists
Trying to use @somearray to get the number of elements, as directed by a website, only to get the array instead. (i.e. not knowing about the scalar keyword) Trying to read a line of Perl out loud
And more...
And Perl 6 doesn't improve anything at all. Be ready to do some legitimate stuff that won't do what you thought it would do... all over again!
Some of my favorites:
Was: $#array+1 or scalar(@array)
Now: @array.elems
The easy to read __FILE__ is now $?FILE
Was: $str =~ m/^\d{2,5}\s/i
Now: $str ~~ m:P5:i/^\d{2,5}\s/
Was: if (-r $file && -x _) {...}
Now: if $file ~~
Yes sirree, they really helped improved the shortfalls of Perl. It really was not $$bugprone.enough(@{($confusing, $hardto$read)}).
That's an appropriate sentiment for a guy who choses his programming language the same way he chooses his girlfriend.
The true test of Perl 6 is how many of the new genes baked into Perl 6 show up in Python/PHP/Ruby ten years from now. That would make Perl 6 an important language, even if it never gets laid.
At some point I'm going to give Perl 6 a shot with an open mind, and see whether all those years paid off with a mature reflection on the nature of womanhood. Even if it's not girlfriend material.
http://wiki.catalystframework.org/wiki/sitesrunningcatalyst
That's just those using Catalyst (a popular Perl based Model View Controller system) but if you glance down the list you are going to see some huge sites with big, big traffic loads. All new stuff, things launched within the past two/three years max. BBC iPlayer alone is one of the heaviest hit sites on the web, and that's Perl.
So you are wrong in your guess that "80%" of Perl programmers are sysadmins writing cron jobs. Whoever modded you up should have done a bit of checking, because marking your opinion as insightful is highly inaccurate.
There have been several new Perl books written just for Catalyst in the past two years, so just because you are not finding anything new for Mason (which is probably not the framework of choice for the modern Perl programmer anyway) that is not much of an indicator. There's tons of FREE docs and examples for Perl in any case (http://search.cpan.org/)
As far as Google's lack of commitment to Perl, well, I'm sorry to hear about that, but that's one company. Google Appengine is a pretty small garden, and the Perl interpreter has trouble running under its confinement. To be honest, Python doesn't run everything under appengine either, you need to write code for appengine. I think getting PHP or other languages to run under it will be equally difficult.
If you want to program in Perl on the cloud you have a ton of options, such as EC2, Rackspace cloud and pretty much any cloud provider with an open system (not Appengines walled garden) Oh, and if you want a smarter search engine, trying http://duckduckgo.com/, which is written in Perl and I find more useful than Google search.
I realize that the Perl community needs to do a better job showing that we are not stuck in 1998, so I forgive your lack of knowledge in this matter. I do actually appreciate the opportunity to discuss it, since this is really the only way this perception problem with be solved. However I hope you can meet me halfway and do a bit of checking on modern Perl before you make such sweeping judgments again. Because to be honest this exact opinion you've expressed I've seen over and over again for several years, and it's totally different from what I see everyday, as a fulltime, highly paid Perl programmer for at least 15 years. Take a look at Moose (http://moose.perl.org/) if you think Perl's OO is lagging, or Plack (http://plackperl.org/) if you think Mason and mod_perl is all we have, for example. Our community is smart, diverse, highly active and strongly focused on the next 20 years of Perl.
John Napiorkowski
Peace, or Not?
it's ambiguous.
No it isn't.
Is the string an integer? A floating point number? Is it hex, binary, or octal?
Perl will figure out which it is automatically and correctly every time
Over-the-top Response Guy! Giving "Over-the-Top Responses" since 1970.