Perl 6 In Time For Next Christmas?
An anonymous reader writes Larry Wall has reportedly announced at Fosdem that "Perl 6 Developers will attempt to make a development release of Version 1.0 of Perl 6.0 in time for his 61st Birthday this year and a Version 1.0 release by Christmas 2015." From the article: "There is going to be the inevitable discussions, comments and probably some mileage from detractors to come. However ever were it so, for us in the Perl Community these are quite exciting times. We have two strong languages and a strong community, I think there is a lot that binds us together so here's looking forward to Christmas."
You really don't need Betteridge to know that Perl 6 isn't going to happen. Really, it's like Perl Forever.
CLI paste? paste.pr0.tips!
How's Python 3 adoption coming along? (and they worked so hard to make it forwards and backwards compatible if you remember to put parentheses around your print arguments!)
If I have been able to see further than others, it is because I bought a pair of binoculars.
Perl's strength is that it's expressive. It's not a language which is easy to learn or which generates heavily optimized code.
In the demo phase, you're not really worried about performance. The goal is to have something showing as quickly as possible, and not worry too much about how fast it runs, or how much memory it takes. Overspec your demo system for the time being (ie - make it really fast and install lots of memory), and once you have a reasonable interface go back and recode it in a simpler language which can be more easily optimized.
Languages which are simple to learn (c++, for example) are generally not very expressive. You end up spending tons of time debugging issues of memory allocation, library interface details, and datatype conversion.
Expressive languages are harder to learn, but any individual line in the expressive language does a lot more. Since you are writing fewer lines, and since the fewer lines do more, you end up making programs more easily and in less time.
Yes, the programs will execute a little slower, but as mentioned, this is not important in the demo stage. Your productivity will be much higher. And there are lots of places where performance simply doesn't matter. Scripts usually fall into this category.
Perl was designed by a linguist, not an engineer. As such, it's harder to learn (it's got tons more keywords and context), but once you get the hang of it coding is much more efficient. The following single line:
@Lines = sort { $a->{Name} cmp $b->{Name} } @Lines;
unfolds into several lines of C++, plus a subroutine definition with datatype definitions. The following line:
@Files = <c:/Windows/*.exe>;
can be implemented using one of over a dozen possible library calls in C++, but is builtin in perl. You don't have to look up the library call interface specific to your system.
And note that writing unreadable/unmaintainable code is an aspect of the *coder*, not the language. If you disregard perl because "other people use it to write poorly" you are probably one of those people, in which case you should avoid coding altogether.
Maybe it will happen, but by then everyone reading this today will be 61+.
Adoption is going to be slow. The current perl is like XP with one important difference - it's still being distributed.
"Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
From a decade ago until now, the Perl devs have spent those ten years improving upon what you either misunderstood or are exaggerating for comedic effect.
Java was rushed out quickly, and early versions of Java made that obvious. Perl6 is the opposite - they've taken all the time needed to perfectly implement their vision, to make it exactly what it's supposed to be. Not everything is nail, so a hammer isn't the right tool for every job, but Perl6 is a mighty fine hammer. If you have a task well suited to what Perl6 is made for, it's a fine tool for the job.
They've been working at Perl 6 for - what? Ten years now? In that time one can develop an OS from scratch. What's Perl going to do? Give you minty fresh breath all day long and unlimited sex with multiple, highly-desirable partners of your choice?
No, that was Perl5. Perl6 is all of that, with Asian twins.
... oh, and regular expression grammars, but hey: Asian twins!
Crumb's Corollary: Never bring a knife to a bun fight.
I look forward to seeing what Perl 6 brings. However, I can't imagine it makes any improvements on the core reason I use Perl5. Perl puts no restrictions on how I program and I am able to get something running by myself faster than any other language.
I am an adult and when I am programming for my own enjoyment I don't want to be told how I have to program. I definitely don't want to have to worry about squeezing my design into some Object Oriented bullshit. I want to tabulate my code the way I feel best. If I want to enjoy some dynamic variable scoping so be it. Mix up some functional with some procedural go for it. Create some cryptic one liner that I won't understand later, live and learn.
Bonus points for still serving its original purpose stellarly. Give me some text and I will mold it to how I want. This is what a majority of commercial software does anyways.
I hear they changed the name.
Some drink at the fountain of knowledge. Others just gargle.
>. Unless Larry took features away
The first thing decided about Perl6 was that some things would go away, meaning you wouldn't have automatic full backward compatibility. Certain constructs that result in a dense line of punctuation marks were an early example.
To be clear, you can now do those things in a more clear, consistent, general and intuitive way - the power wasn't removed, rather special cases and sparse syntax were replaced with concepts that are more generally applicable, using a more clear syntax.
Help out with grading student programming projects and you'll see that anything can be a write-only language.
FYI it can target most any virtual machine. Parrot is just one. The JVM is another. For example, Rakudo Perl is a Perl 6 implementation which targets JVM, MoarVM, JavaScript and Parrot.
With all the work that has been poured into MoarVM, MoarVM Perl 6 is now painfully slow.
This is a tremendous improvement. The best they'd ever managed with Parrot was "abysmally slow." Before that, perl 6 implementations ranged from "diabolically slow" to "the madness-inducing manifestation of the visage of Gn'oguracha, Elder Slug-God of Unspeed."
A typical statement from a recent presentation: "2013.08 was about 3,600x slower than Perl 5. 2014.08 is 34x slower. Better. But still sucks."
If they keep pouring in the effort, eventually they may reach parity with Perl 5, which was simply very slow. It is unlikely they will ever approach the performance of modern javascript engines, which are just plain slow.
We actually use Perl quite heavily where I work, and its use is only growing. We've built rather significant pieces of our infrastructure around it, including a rather impressive internal project that uses Perl as a metaprogramming language. You'll get yelled at if you deviate from the standard perl-based development flows we've put in place.
So, "isn't used all that much anymore" may be more anecdotal than not? I guess it really depends on the shop whether perl use is increasing or decreasing.
Program Intellivision!