Perl 6 Released (wordpress.com) 145
Earlier this month, we noted the Perl 6 advent calendar. Now, an anonymous reader writes to note that, right on schedule, and after 15 years of work, Perl 6 has been released. The top two bullet points in the linked description say that the newest Perl "retains the core values of Perl: expressiveness, getting the job done, taking influences from natural language, and pushing the boundaries of language design," and
that is "has clean, modern syntax, rooted in familiar constructs but revisiting and revising the things that needed it." However, while it's nice to see Perl 6 reach official release, the team behind it takes pains to note that work goes on: "We will continue to ship monthly releases, which will continue to improve performance and our user’s experience." Further, "[T]his Rakudo release is not considered the primary deliverable for this Christmas; it is the language specification, known as “roast” (Repository Of All Spec Tests), that is considered the primary deliverable."
Perl 6 (Score:3)
First post,
I love Perl
After 15 years of failure, not work. (Score:4, Interesting)
Perl 6 has not been released "after 15 years of work". It has been marred by one disaster after another. It has been released after 15 years of failure.
Those who have been following its development then entire time will remember the Parrot virtual machine [wikipedia.org] shenanigans, which wasted many years, and prevented a usable Perl 6 implementation from becoming available.
Then there was the Pugs [wikipedia.org] implementation of it, which actually seemed slightly promising at first. That, of course, turned into a disaster when the lead programmer decided to change his gender [wikipedia.org]. (I'm not even joking!)
There's also Perl 6's absurd logo [perl6.org], which renders Perl 6 unusable in any serious environment. We'd be laughed at if we showed the Perl 6 home page to managers, executives or clients when advocating for the use of Perl 6. They'd think we were pulling their leg by using a language with such a childish logo.
Lately the focus has been on Rakudo [wikipedia.org] which has taken years to produce something even minimally useful. I've read reports that it's slow and forces you to use some obscure MoarVM they've created (this sounds to me like they're on the road to another Parrot-style failure!) or the JVM.
Perl 6 has been a shameful episode in the history of programming languages. It's even worse that it has permanently tainted the Perl name.
Re: (Score:1)
Why would you want to use Perl 6? Some answers. [wordpress.com]
Perl family: 15 years of Perl 6 and Perl 5 [slideshare.net]
Re: (Score:1)
You have failed the test.
Re: (Score:1, Offtopic)
So, Pugs turned into a disaster after the lead programmer "decided to change his gender". That's quite a lovely way to describe somebody's personal struggle, or an insightful way to describe what happened to Pugs (several parts are used in Perl 6, so not a disaster). She (not a he, but a she) is still followed by many of us, and when anybody in the Perl community talks of her, it is with fondness and respect.
Next to that, you must really really hate the fact that at least three other transgenders have wor
Re: (Score:2)
+1.
I've been programming in Perl for 20 years. Perl 5 is a great language - it did things 20 years ago that are trendy now - things like closures, functional style (if you want it), autoboxing, etc - certainly these weren't new then, but they were new to many Unix people at the time. It also happens to be extremely concise and evolving (5.22 is quite evolved from 5.0, because, among other things, it has included aspects of Perl 6). Perl 6 is going to be a great language too, as the creator wasn't after cre
Re: (Score:1)
+1 from me too.
As someone who has tried (and failed) several times to learn Haskell, I cannot describe how much I am in awe of someone like Audrey Tang and her sheer brain power.
Re: (Score:2)
There's a workaround:
#!/usr/bin/perl -T
Re: (Score:2)
Seconded. And FWIW pugs came before rakudo-parrot and helped a whole lot giving people something solid to play with to find the weak spots in initial plans.
Perl 6 does not discriminate, we even hug trolls, come on over.
That old chestnut? LOL. (Score:3, Informative)
Yawn. The world has moved on. I used Perl 15 years ago but Perl 6 has taken far too long. Why should I use it now over anything else?
Re: (Score:3, Interesting)
Are you kidding? I'm still coding in Forth!
Re:That old chestnut? LOL. (Score:4, Interesting)
I do that too...
Forth is great too....
small powerfull & highly customizable
Re:That old chestnut? LOL. (Score:4, Interesting)
FORTH RULES! I wrote a FORTH the other day inside my Java Unit test environment to script all the JavaEE client tests. I mean literally I wrote a forth, it took a few hours. Its missing some features, ain't quite ANSI standard, but its real. No piece of software ever designed in the history of Man is as elegant as FORTH. Does everything perl can do, feature for feature, in 1/10,000th of the code.
Re: (Score:1)
Yep - I'm writing in FORTH too. Great language. I also write in Perl 5 - a lot. Won't be moving to Perl 6 any time soon.
Re: (Score:2)
>Yawn. The world has moved on. I used Perl 15 years ago but Perl 6 has taken far too long. Why should I use it now over anything else?
To be fair, the first C++ standard took forever to come out (in '98), and then they didn't come out with a significant revision again for 13 years, but C++11 was well worth the wait.
Re:That old chestnut? LOL. (Score:5, Informative)
The thing about C++ is that in all that time, no-one has come up with an acceptable replacement, so people stuck to what they had.
Not so with Perl.
Re: (Score:2, Informative)
The thing about C++ is that in all that time, no-one has come up with an acceptable replacement, so people stuck to what they had.
Not so with Perl.
The thing about Lisp (which came out in 1958) is that in all that time, no-one has come up with an acceptable replacement. Greenspun's tenth rule of programming: Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp. Well, perhaps Smalltalk.
Re: (Score:2)
Lisp has another problem - there's no language that can do 80% of what it can, but that 80% also happened to be what most programmers don't actually need (or at least not need enough to be worth all the idiosyncrasies that are necessary to enable it).
Re: (Score:2)
So true. I wrote some pretty large programs in Perl back in the day. It has some excellent features, but today I only just maintain existing software written in perl5, and meanwhile Python adopted all the best things from Perl, and mostly avoids a lot of the worst. Just the fact that there's a real standard for it and alternate implementations puts it on a different level. Perl was far ahead of everything else in 1995, and the Perl community squandered all of that.
Re: That old chestnut? LOL. (Score:2)
Re: That old chestnut? LOL. (Score:2)
Re: (Score:3)
I got tired of waiting for Perl 6 and switched to Ruby... 11 years ago.
I think the only reason would be, "I use Perl and I like the new stuff." If that isn't you, this probably isn't your stop.
Re: (Score:2)
Right, if you don't care what you use, they do all work. Nobody said otherwise.
Re: (Score:2)
Sadly, much of that work has shifted to python. I don't like python, because I learned that meaningful whitespace is a bad idea when I was using COBOL.
Perl's real wart is the hoops to integrate with C. It works great once you get there, of course.
Text processing these days there are such good libraries for whatever strategy you use, nobody actually has an advantage anymore. Except in cli filters, and then I reach for sed as often as anything.
Re: (Score:2)
Re: (Score:2)
Now that you've (pl.) posted this HR will be requiring it.
Re: (Score:2)
It may as well be Perl again.
Re: (Score:1)
Re: (Score:2)
I used Perl 15 years ago but Perl 6 has taken far too long.
How did you get a copy of Perl 15? I thought that was still 200 years away...
Re: (Score:1)
Given that it took 15 years to complete the last release, and assuming the same for all the others (unless they do a Firefox and issue a new version every month), then we could expect Perl 200 in the year 4926, and by then our new alien overlords will have mandated the use of something else, I expect (if humans haven't been turned into slaves or food, of course).
Huh... (Score:3)
Missed the best article quote (Score:1)
"This Rakudo release targets those tests (over 120 thousand of them), and passes them all on at least some architectures when the moon is in the right phase."
However... (Score:2)
Re: (Score:3)
Re: (Score:2)
My feelings exactly.
I love Perl for its power. I love CPAN, POD, etc. It is my swiss army tool for everything between quick one-liners and programs with complex data structures.
The current Perl 5 interpreter is fast and efficient. And I never felt the language itself was missing anything important (although using it for OO is a bit awkward).
The only thing they should fix in Perl is support for unicode filenames in Windows platforms.
Re: (Score:2)
The only thing they should fix in Perl is support for unicode filenames in Windows platforms.
In the past, I could work it around using the Win32::OLE [cpan.org] (with CP_UTF8) and the host scripting interfaces [microsoft.com].
But if I recall correctly, with Strawberry Perl, in couple of cases, I had no problems with the unicode file names.
Re: (Score:1)
Moose "fixes" most of the shortcomings of Perl 5's OO, and, while I still roll my own Perl 5 OO code, I've become more enamored with Moose over time. Not for repeated startup scripts that are invoked 1000s of times because of the startup overhead still, but, for things like Catalyst use it's still great. I'm currently working on a Catalyst project - with Moose at the backend for OO. Good for that.
Re: (Score:2)
In terms of performance, Perl 6 sacrificed a lot of performance at launch by being created as a standard instead of an imple
Re: (Score:2)
I agree with your general point but not your details.
I would bet that more people use Perl 6 than use Perl 4 when it was released. Perl 3 was a very niche language, trying to replace the bash (csh, tcsh) + sed + awk style of scripting. It mostly was poorly known. There was much less Unix in those days, most systems which required admining were still legacy minis. Perl 4 was a huge success and then around the same time the World Wide Web made CGI gateways important which coincided with early Perl 5. ...
Yes, Virginia, there is a Santa Claus (Score:2)
Well OK that is a bit much... but looking forward to explore Perl 6 in the New Year.
Re: (Score:2)
I'm sure I'll bump into it eventually. I think Perl comes installed with everything. I don't remember the last time I actually installed it. It probably comes default on Toaster Linux.
~$ perl --version
This is perl 5, version 20, subversion 2 (v5.20.2) built for x86_64-linux-gnu-thread-multi
(with 51 registered patches, see perl -V for more detail)
Copyright 1987-2015, Larry Wall
I'm pretty sure I did not install that. If I need something quick and dirty (I don't) then I guess it's always there. I'd remove it but I know that if I do, I'll think of a reason to use it. I'm trying to learn Python now. It has been too long since I've done much coding - except in PHP and not even that for seven or eight yea
Re: (Score:2)
Re: (Score:1)
I kinda figure something is still using it. Damned if I know what.
PHP vs Perl (Score:2)
How much you wanna be that because PHP just had their first major version increase in over a decade just this very month is the only real reason that Perl decided to do the same? Now I'm personally not trying to advocate or attach either language here, just pointing out the interesting comparison and timing.
Re: (Score:1)
Re: (Score:2)
and the fact it's ruined the perl work market.
How has it ruined the perl work market?
Re: (Score:1)
Re: PHP vs Perl (Score:1)
Well that's just fucking stupid
Re: (Score:2)
Re: (Score:1)
Re: (Score:1)
Re: (Score:1)
Re: (Score:1)
Nagios
Re: (Score:2)
I do have some bitches though. Its impossible to write a good code analyzer or even syntax highlighter for perl5 code. There are elements of the syntax that are obtuse even for people like me that have written literally millions of lines of perl code over 20 years. And aren't you really sick and tired of writing my ($self,$foo,$bar,$baz) = @_; YET? I know I sure am!
I write extremely clear and concise OO code in perl, but its STILL difficult to understand at a glance.
Re: (Score:1)
I And aren't you really sick and tired of writing my ($self,$foo,$bar,$baz) = @_; YET? I know I sure am!
I for one will never get tired of writing: bless $self
Re: (Score:2)
That I can at least understand. If Perl was a PURE OO language it would be just built in, but given the way its an incremental feature that you can ignore, then it makes sense that there's SOME sort of syntactic "this is now an instance" thing.
This IS one thing that perl6 fixes, you have a more regular argument syntax. Of course there are some really, IMHO, stupid choices as well, like why do I have to go find other instances of the same sub/method and rename them 'multi' just because I now have 2 signature
Re: (Score:2)
Why do I have to go find other instances of the same sub/method and rename them 'multi' just because I now have 2 signatures?
So you can get compiler warnings when you accidentally try to shadow an 'only' sub definition in the same scope when you are not using multis.
why is there sub and method as separate things in the first place
Because calling conventions are customized to OO in methods -- you have an invocant, and unknown named parameters are, by default, ignored so you can easily subclass.
and WHY is 'su
Re: (Score:2)
So you can get compiler warnings when you accidentally try to shadow an 'only' sub definition in the same scope when you are not using multis.
No other language needs this. In both perl6 and Java for instance it is illegal to have 2 functions of the same exact signature in the same scope, and multi doesn't change that (how would it). NOTHING is gained by multi, except added syntactic complexity and the need to revise existing code when adding a new method/function that has the same name as an existing one, which is fairly common. By itself this is trivial, but perl6 commits this same sin again and again in different ways, meaning you have remember
Re: (Score:2)
and the need to revise existing code when adding a new method/function that has the same name as an existing one
Let's be precise: the need to add one multi to the one only sub that was allowed before you made it a multi. Compared to the benefits of being able to close the definition of the sub for the optimizer to inline it under more circumstances, this is a minor incovenience.
If such calling conventions are 'good' then why not use them for all subroutines?
Because different calling conventions are better at different things. Generally in he style that uses subs, you do not want an unknown named parameter to be ignored, but when inheritance is involved, you do.
It doesn't appear to have any revolutionary multi-threading/parallel processing magic that other languages don't have.
Other languages have hyper/race op
Re: (Score:2)
Oh, "let me design my own language, it will be the best" is just programmer peen basically. There's a very slow gradual advance, as well as slow changes in the usage patterns for code, which means that SOME new languages add some small increment to coding practices and whatnot, but I'm not seeing where perl6 does that. It doesn't top Erlang or even ANCIENT versions of Scheme or LISP in concurrency, and it doesn't top other modern scripting languages in any other respect AFAICT.
As for your other comments, th
Re: (Score:1)
Re: (Score:2)
Well, perl has had a form of subroutine signature since forever, you can put sigils in quotes after the name of the subroutine, like sub fooBar($$@) (I think you can even do something like fooBar($foo, $bar, @baz) but the names don't matter). ALL that does is allow the compiler to let you elide the parens when you call the subroutine, like "fooBar $foo, $bar, @baz;" instead of "fooBar($foo,$bar,@baz);" which is not really the same thing at all, you still need the silly local variable incantation at the star
Re: (Score:2)
I think that's a completely inaccurate apologetic. And I say that as a guy who wrote a lot of Perl 5 code during the 1990s. Perl 6 was born from the Perl 5 community's desire to make major changes to Perl. If it had come out in 2002 it would certainly have been "the next major release of Perl". It's just that the community bit off way more than it could handle, failed repeatedly...
No question the Perl work market was harmed by the Perl 6 fiasco. Failure to build a new version in a timely fashion creates
Unicode characters in code (Score:3)
One thing that caught my eye was this:
Non-digit unicode characters with a numeric value (½ and such) can now be used for that numeric value
and
Provide tau constant (also: )
(There's a Unicode tau there that slashdot won't pass)
I've seen this in Emacs LISP, but I haven't seen it elsewhere (granted, I mostly use older languages...). I imagine non-ASCII characters in code are going to be a point of contention among developers.
Related:
Superscripts can now be used for integer powers
I haven't payed much attention to Perl 6 (I use Perl 5 for a lot, though), but now I'm looking forward to playing with this.
Re: (Score:2)
So whereas in other programming languages, you have to waste 200 milliseconds typing combinations of characters like "1/2" or "**2", now you can instead waste five minutes drilling down through menus like "Edit->Insert->Other->Symbol...", then searching for the appropriate page out of 50 entries in a drop box like "Smileys", "Electrical Symbols", "Arrows", "Connectors", ahhh, there it is: "Mathematics (1 of 7)", then scan a grid of about one hundred icons and finally click on your eye-candy symbol.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
One thing that caught my eye was this:
Non-digit unicode characters with a numeric value (½ and such) can now be used for that numeric value.
Whew! The lack of that has really hindered me in writing the - literally - tens to hundreds of thousands of lines of Perl 5 code I've written over the years. Now I can get to work! (Still doing everything one can do (perhaps differently) in Python, btw.)
Erlang 2.0 /Psycho bitch!!! (Score:4, Funny)
Yo yo hipster web developers. The new rockstar language is Erlang reborn aka Outlaw Techno Psycobitch [youtu.be] which you can write hipster low 16 color flat modern impress your cat applications and websites!!
Perl and Ruby on rails is sooo last decade man for crusty developers
Some more information (Score:4, Informative)
The Perl 6 Architect writes about the 7-8 years work put in to get this far at https://6guts.wordpress.com/20... [wordpress.com]
"In the coming days, weâ(TM)ll also produce a Rakudo Star release â" which consists of the compiler along with documentation and a selection of modules â" and that will also have an MSI, to make life easier for Windows folks."
There will also be perl 6 speedups in a series of monthly releases next year.
A good starting point with download instructions and docs links is
http://perl6.org/downloads/ [perl6.org]
Have fun!
Just read some of the spec (Score:2)
I'm not sure I like all that simplification. I mean, I kinda liked it when @array[ 1 ] and $array[ 1 ] had different results (but worked on the same array).
Re: (Score:2)
Re: Just read some of the spec (Score:2)
If you can't remember the spec implied by 120,000 unit tests, maybe Perl 6 is not the language for you.
By which I mean, maybe it's not the language for anyone who isn't one of the core developers.
While I once eagerly waited for Perl 6 to be done, its developers seem too busy adding regex modifiers and questionably valuable parser support for Unicode fractions and superscripts (maybe next they will let developers provide overloading for subscript code points?) to explain when the language is a compelling alt
Re: (Score:1)
I'm not sure I have found a single document that I would call a language specification. They seem to say the language will be officially defined by a bunch of unit test definitions.
Perl6 Design Docs: https://design.perl6.org
Re: (Score:2)
Perl6 Design Docs: https://design.perl6.org/ [perl6.org]
Yes, that is exactly the page which led me to make my comment.
Congratulations! (Score:1)
Well, let me be the first to say - that's really cool! No matter what your favorite language is, congratulations to the Perl 6 team are in order for their hard work and perserverance.
Sme old same old (Score:2)
Why "Now" after a comma?
Perl Festivity Levels (Score:5, Funny)
repost [slashdot.org]
Perl Festivity Level 1: Developers and users have gathered to nibble hors d'oeuvres and chat amiably with each other about the Modern Perl Renaissance. With every sip of their drinks Perl seems ever more striking. Some are gathered around the upright piano improvising songs that proclaim how it is faster, neater, and sharper than ever before with its asynchronous APIs.
Perl Festivity Level 2: Everyone is talking loudly -- sometimes to each other, and sometimes to nobody at all. Perl seems even better. Perl Monks are patiently explaining syntax and style to potted plants and other nearby objects. Around the piano people are feeling fun and flexible, just as programming in scripting languages used to be. Someone is crooning a bawdy ballad where a couple of inexperienced DOM and CSS selectors encounter a very supportive bundled development server.
Perl Festivity Level 3: Monks are arguing violently and defrocking one another over nested do...until loops that bail on exceptions. People are gulping down other peoples' drinks, placing hors d'oeuvres in the upright piano to see what happens when the little hammers strike as everyone bawls "Got my Mojolicious workin' ... but it don't work on Python!" They have lost count of their drinks, and the world is harmonious with blissful adherence to modern interfaces and standards.
Perl Festivity Level 4: All the guests, hors d'oeuvres smeared all over their naked bodies are performing a ritual dance around a burning heap of tables and chairs in celebration of postfix dereference syntax, subroutine signatures, new slice syntax and numerous optimizations. The piano is missing.
~~ with apology and deference to Dave Barry [cmu.edu]
http://www.perl.org/ (Score:1)
Until it gets here
https://www.perl.org/
I ain't bothering.
Half-baked "release" (Score:2)
For all those talking about a release of a compiler (but not yet including all modules and other support stuff), rather than the release of the language spec, this is a pretty half-baked "release". It sounds more like yet another dreary development pre-release such as we've been showered with for many years.
From the Rakudo announcement [wordpress.com]:
It passes the full set of language tests on selected architectures when the (quote) "moon is in the right phase".
"There is still plenty of work ahead for us to improve speed,
I had hair when that mattered. (Score:2)
I wonder if Larry Wall even still uses PERL...
Re: (Score:2)
Perl6 greatest failure (Score:2)
Over the years of using Perl5 I have realized its greatest shortcoming: I have to type $/%/@ characters too often, what sometimes gets me - especially if I try to do something OO in Perl.
I have looked (again) at Perl6 recently, and was appalled to see that it used even more of punctuation than the Perl5.
As a way forward for Perl5, a special mode which allows to omit the $/%/@ qualifiers would be really nice. After all, Perl already has the "bareword" error handling: it shouldn't be too hard to make the
Re: (Score:2)
Using references for this?... Perl6 is crazier than I thought.
Re: (Score:1)
One of the things I really like about Perl is that when you are reading the code you can instantly recognize the variables.
Also you can add new operators by simply adding a subroutine. ( In fact all of the operators except the hyper and meta operators are implemented that way in Rakudo )
sub postfix:<!> ( UInt $n ) is tighter(
Re: (Score:2)
discussions of variable sigils are so far down the list of relevant considerations when discussing a programming language, I can't fathom why anyone who has coded for more than a week would actually bother mentioning them.
You probably never had to code couple thousand lines of code in a day, have you?
Perl5 is otherwise fine language. I'm using it now for more than 15 years, including using it 2 years full-time professionally.
In the past, on smaller things, Perl's syntax was not as cumbersome. But for newer code, especially OO one, the denser code is just overflowing with the sigils (and dereferences). In the older times, for small/medium stuff, one often resorted to the built-in variables. In OO code, literally everythin
Its better!! (Score:1)
Does anyone even want a new Perl ? (Score:2)
It really seems like Perl 6 is a solution in search of a problem. Twenty years ago, Perl 5 was literally better than nothing - an intermediate step between shell scripts and C. Ten years ago, it was a scripting tool I could use on otherwise restrictive embedded environments. Today, I only use it because I have this one legacy script I haven't yet bothered to rewrite. At no point have I been on a project and thought "Perl would be ideal for this". It's always been "Aw crap, guess I'll settle for Perl".
T