Status of Perl 6
perl6.guide
perl6.guide
Back in 2004 we had to choose the programming language for a new project. PHP5 (which was just released at the time) was the top candidate, but I really wanted to use Perl6 which a lot of people were very enthusiastic about and whose weekly mailing list updates made it look like an early partially usable version which could be used for staring the project was just around the corner.
In the end we went with PHP. 10 years later it looks like we made he right decision.
I realize that a lot of factors contributed to Perl6 being this late, including several cases of plain old bad luck, bit I still can't help being disappointed that the language I thought would be the next big thing might not get much use at all...
If there's one thing that I would point to about why Perl is no longer a popular language, this is it. I too remember all the hubub and excitement. I think I even have a copy of the O'Reilly Perl 6 Essentials somewhere waiting for a v1.0 to come out any day now.
Perl 6 should have really been a staged release. v1.0 will have this, 2.0 will have this, etc. As languages age they add new features and this wouldn't have been viewed as odd at all.
But there are people who have gone from middle-school to millionaire in the time it's taken for a non-alpha Perl 6 to make it out the door.
A more realistic approach would have been to compare PHP5 with Perl5, where the latter would offer a migration path to Perl6 if it had become popular.
(Not only had Perl5 compared favorably back then, the core of the language has been stable, deployment looks similar and there has been much fewer security issues with the language itself.)
If Perl isn't your bag, or Perl 6 is taking too long to be "finished" for you to want to use it, that's fine. There are hundreds of languages to choose from. I understand the frustration of longtime Perl developers; Perl 6 is the Perl developer vanguard seemingly turning their backs on "pragmatic" and running somewhat haphazardly toward the theoretical and (very far) forward looking (Perl 6 contains many more novel concepts than a lot of newer languages, such as Go).
Could it, should it, have been done differently? Incrementally, with real-world testing for each new feature? Probably. Hindsight is 20/20. Is it a victim of second system effect? Possibly, we won't know until it hits some reasonable levels of production; right now it's still quite academic. Hubris is one of the Perl virtues, and it may have led to "perfect is the enemy of the good" winning out on more decisions than it should have.
But, Perl 5 is a great language today, certainly a match for Python or Ruby for conciseness, performance, capability, etc. And a vastly better language than Perl 5 was 14 years ago. Perl lost the popular mindshare war..but, it still helps people build a lot of cool software in a lot of fields.
Regardless of whether you'll use Perl 6, I'd love it if people here at HN would actually take a look at the novel ideas contained therein, rather than focusing on the superficial "it's late and I don't like it". There are concepts in Perl 6 that could improve your favorite language, and might alter the way you think about solving problems. If only you'd check it out. I'd wager most of you have read a bit about Haskell or Go or Erlang or Scala, without ever seriously intending to develop in it. I would suggest the same approach to Perl 6.
That being said, perl6 is interesting, so I think looking at it more like haskell could be valuable.
Source: the Camel book.
And from BCPL came, in order...
* B language
* C, and its statically-typed "C" derivatives C++, Java, C#, ObjectiveC
* P for perl, and its dynamically-typed cousins and derivatives Python, PHP, Ruby, etc
* L for whatever's next, must be the final victory of Lisp
> [citation needed]
You didn't have a citation on your own quote when I responded to yours without a citation. Perhaps you should have written "Whoops, I neglected to add the source of my quote when you replied but have done now. I can't, however, find the source of yours -- where did you get it?".
As for my quote about the acronym of BCPL being a premonition of the languages after it, I read it somewhere sometime before 1997 which was the last time I programmed in Perl.
* You maybe programmed in Perl once in '97.
* You didn't know the difference between PERL and Perl.
* You don't know what the camel book is (Programming Perl by O'Reilly), and have never even read the first chapter.
* you have no citation for your BCPL statement.
But if Perl6 had been finished in 2005 or 2006, things might look quite different today.
What we really needed was a Perl 5.5. A cleaner syntax and OO that isn't shoehorned onto the language. Many of the "features" of Perl 6 aren't really features at all, and in many ways Perl 6 doesn't stand up to other languages that it might compete with (JavaScript, for example).
Early on Perl 6 felt like a different language, and while that has moderated somewhat, it still doesn't feel very 'perlish'. It will be interesting to see where it goes.
Now, a cleaner syntax? Maybe it would be better to avoid the magic variables, but one thing Perl 6 did away with which I really like about Perl 5 is that the dereferencing operators ($scalar, @array, %hash, &sub, *glob) have distinct types, and “use warnings/strict” can catch their misuse. Dynamic typing is a lot more tractable for large software when you have succinct explicit typing.
As for non-shoehorned OO, maybe it would be easier for classes-and-inheritance people to learn Perl if it had a more conventional object system, but the fact that you can bless any reference with a package name and use it as an object is really simple and really powerful, and I like it a lot.
https://github.com/cosimo/perl6-digest-md5/blob/master/lib/D...
I'd really love to see and outsider do writeup on why Perl 6 is where it's at. It'd be a great lesson in project management, time and scope boxing and feature creep. I mid-career now, and Perl 6 was announced when I was an intern. At this rate, production releases will come out when I'm deciding on early or standard retirement.
Meanwhile, Perl 5 seems to have gotten all kinds of wonderful new life breathed into it.
JWZ explained it more than a decade ago: http://www.jwz.org/doc/cadt.html
http://www.theregister.co.uk/2008/12/16/larry_wall_perl_6/
And then there's the first moment of inspiration (in 2000, that is, 14 years ago):
http://www.developer.com/lang/perl/article.php/3076571/Perl-...
"An hour into the discussion, around the time most people nod off in any meeting, Jon Orwant (the reserved, universally respected editor of the Perl Journal) stepped quietly into the room and snapped everyone to attention with an entirely uncharacteristic and well-planned gesture. Smash! A coffee mug hit the wall. “We are *@$!-ed (Crash!) unless we can come up with something that will excite the community (Pow!), because everyone´s getting bored and going off and doing other things! (Bam!)” (...)
Within a few hours the group settled on Perl 6, a complete rewrite of Perl. The plan wasn´t just a language change, just an implementation change,or just a social change. It was a paradigm shift. Perl 6 would be the community´s rewrite of Perl, and the community´s rewrite of itself."
The important point of JWZ's article isn't "teenagers". It's "rewriting everything from scratch... happens, over and over again". For example, Rakudo's current "Great List Refactor": http://pmthium.com/2014/10/apw2014/
I agree, and I am glad about it. One way or another, I use Perl almost daily. Well, at least two out of five workdays every week.
What about P-Code (1978), M-Code(1978), OS/400 TIMI (1988), or the granddaddy UNCOL (1958)?
Parrot was hardly a new idea.
But the real champions for delayed development are LaTeX 3 at something like 20 years & counting, and the GNU Hurd at 24 years & counting.
That said, it's mostly just a web reimplementation of the incomplete 1998 Udanax client.
Here are the dates on which each will be category leaders:
o IE 11 - 2014
o Python 3 - 2016
o IPv6 - 2022And IPv6 is my full time job. I teach it to a lot of people, and see it deployed all over the world - so I have a pretty good sense of whether it's going to happen (it will), and how long it will take (quite a while, Carrier Grade NAT could actually keep IPv4 going forever)