
“2015 will be the year that Perl 6 officially launches for production use” - bmn_
https://fosdem.org/2015/schedule/event/get_ready_to_party/
======
Diederich
I've been writing Perl every day, at work and at home, since 1993, ranging
from mission critical operational components in the USAF, to automation that
produced many 9's of network availability in a 'fortune 10' giant, to
innovative operational management and process systems in a Silicon Valley
(kind of) startup, to some pretty interesting stuff at my current company
(SAP).

Perl 5 has certainly paid the bills. I have taught it to hot-shot C
programmers and mainframe Cobol programmers alike in a community college.

Perl 5, by any modern standard, is, at best, a 'quaint' language.

Perl 6 is literally everything I wanted Perl 5 to be. The incremental data
typing is very exciting. The regular syntax is going to make it even easier to
teach. And there are so many other well considered and awesome features.

And I just get giddy when I think of the amazing things that really smart
people are going to make with Perl 6. It's powerful from the top of its head
to the bottom of its feet. And I think that it's going to be a very fast
language too.

Thank you, Perl. Thanks to the many people who have made it possible. May my
13+ years of high hopes not be in vain!

~~~
jspiral
I haven't touched Perl in quite a long time. For the type of automation stuff
you are doing, i'd likely use python or ruby, depending on the nature of the
problem.

Would you say people like me should be looking hard at Perl 6? I'm curious
what the benefits would be.

~~~
Diederich
At least for the past decade or so, I would (roughly and humbly) put Ruby and
Python on par with Perl 5 for the purposes of system administration, with a
whole lot of pros, cons and caveats. Very roughly. It's just that, as a
language, Perl has always resonated with me, even though I've rather enjoyed
writing in both Ruby and Python.

Assuming you are akin to 'Jill Sysadmin' or 'Joe Devops', I would honestly say
that Perl 6 won't be more compelling than Perl 5 for a while.

And, by the way, Perl 5 has grown enormously in the past 10 years. I would say
that if you haven't taken a look in a while, give it another shake.

I honestly struggle to imagine the really cool things that will start to come
out of Perl 6 acceleration. It has some really novel concurrency concepts, far
more interesting than goroutines, for instance.

And once again, I _believe_ Perl 6 will turn into a very fast language.

~~~
bane
> And, by the way, Perl 5 has grown enormously in the past 10 years. I would
> say that if you haven't taken a look in a while, give it another shake.

 _this_. I can hack a bit in Perl 5, but "modern Perl" is virtually a unique
language that just so happens to be written using the same words I use. I
haven't had a chance to really learn modern practices, I keep telling myself
I'm going to sit down and do it, but I haven't had a chance. But what I've
seen is really pretty different than what I grew up with.

It's pretty amazing.

------
bane
If this is true, I'm incredibly excited. Perl is like a girl I used to love,
broke up with, but never got over. I'm eager to start hacking on Perl 6 code,
but don't want to put the time in dealing with preproduction versions of the
language.

Very exciting.

~~~
raldi
To me, Perl was a girl like none I'd ever met, strange and wild and inspiring!
But polite society rejected her... it was just because they didn't really
_know_ her. My parents said she was trouble and banished her from our home. I
loved her so much I would sneak out at night and find any way I could to spend
some time with her.

(Wait, or is this the plot of _Phantom of the Opera?_ I'm bad at musicals.)

~~~
AznHisoka
It's the plot to Les Miserables, I think. Not sure.

~~~
autarch
It's not the plot to either, I'm afraid.

------
zvrba
Compiler feature matrix:
[http://perl6.org/compilers/features](http://perl6.org/compilers/features)
Note that there is also a JVM target. This is exciting!

~~~
pfortuny
It is a pity that the concurrency column is as red as it is. I hope it does
not end up like Perl threads.

It would be so nice to have easy threads in this language.

~~~
lazyloop
Rakudo MoarVM is the real Perl6, and it's almost all green.

~~~
pfortuny
Ah OK then great! Thanks for clarifying.

------
grondilu
IIRC, this was a premature claim that has been written without any consulting
of the actual Perl 6 community:

[http://irclog.perlgeek.de/perl6/2014-11-05#i_9617218](http://irclog.perlgeek.de/perl6/2014-11-05#i_9617218)

~~~
untothebreach
I'm confused...the post says that the speaker is Larry Wall. Is he really
considered a 'random outsider' to the Perl 6 community?

~~~
colomon
Larry is very involved in Perl 6[1]. I'm not sure what grondilu was thinking
there. While as far as I know Larry sprang that on the rest of us, the general
reaction I've seen has been that the gauntlet has been thrown down, and we've
got to live up to it.

[1] [https://github.com/TimToady](https://github.com/TimToady)

~~~
grondilu
The speaker is Larry Wall but I interpreted timotimo's quote as meaning that
the abstract on the FOSDEM page, along with the pseudo-announcement, has not
been written by Larry himself.

------
rurban
Unfortunately I cannot recommend the parrot backend for production use yet. We
recently found a serious GC bug which is reproducible under very tight memory
constraints, such as my mips box with 256MB RAM or with very big perl6
modules.

I'm working on it for a week already and cannot promise to be finished until
Jan 31, 2015.

But the other 2 backends, jvm and moar, are doing fine.

~~~
lazyloop
Parrot should just be abandoned, MoarVM is the way to go.

~~~
rurban
If you care about small perl6 apps, which do not have to scale with concurrent
CPUs, yes. But parrot has a much bigger scale. And lock-free threads.

~~~
smegel
And JIT?

~~~
rurban
The parrot jit will need some time. First the runloop changes for method calls
and argument autoboxing needs to be reverted, then the jit will be revived.

But on the other side I just fixed the GC bug, so it looks good now even on
parrot.

------
huskyr
So, will 2015 also finally be the year of Linux on the Desktop?

~~~
captainmuon
Just thought the same thing.

However, Linux on the Desktop (almost) already had its time, and it passed. It
was around 2009, Ubuntu was at its pinnacle, it was the time of Compiz and
Gnome 2 and transparent terminals and themes and whatever. A lot of my (non-
technical) friends were suddenly interested in Linux (well, distros of
GNU+X11+Desktop Environment+Free/Open Source applications). This was a free
alternative to Windows, better than Vista or XP, actually easier to use for
many tasks ("I can't believe that it is so easy to install new fonts, I never
knew how to do that on Windows"). This was before all of the experimentation
(Gnome 3, Unity, ...) that, while in principle a good thing, the way it was
executed effectively killed the old lineages (Gnome 2). When it comes to
languages: Python 2.7, and on-topic: Perl 5. This was also before all the
annoying in-fighting for _mostly_ political reasons (systemd _cough_ but there
are many more examples). I don't know whether politics is an issue for Perl.

But that there is no golden way of transitioning to a new version in the FOSS
world definitely is a problem that is harming so many projects.

~~~
digi_owl
But there is. Make damn sure the old and the new can live side by side on the
same system for as long as the user/admin see fit. Thus making the user/admin
the arbiter of change, not the project devs or the distro maintainers.

You find this on the kernel level, where old and new APIs sit side by side.
But higher up it seems like egos override pragmatism. Or "perfect is the enemy
of good".

------
barbudorojo
I would like Perl to be the Perfect Extended Ruby Language. Sometime ago,
there was a post from some Perl people about using Scala for the next Perl.
Today Haskell, Clojure, Julia, Scala, Ruby and Lisp (batteries provided by
quicklisp) are very big contenders.

Perl has cpan but I think the Perl community is really small, the great exodus
happened long ago. Perl can make you feel as a real hacker, also J, but
cryptic syntaxes is no longer buying you anything.

How can anyone seriously take any credibility to a calendar when Perl 6 has
been delayed for ever.

Perl 6 is not the gift that Perl 5 was hoping to receive, Perl 6 is a modest
advance not a revolution.

Today, now, we need much more. I wish Perl 6 the best, but I doesn't believe
it will gets much traction.

Edited: Grammar. Summary: Too little, too late, there is no longer confidence.

~~~
esaym
Honestly, there are so many (too many) languages out there now. I highly doubt
any of them has more than 100 regular contributers.

Perl built an awesome foundation because in the beginning, that was all there
was so you had 1000's of regular contributers to the core and cpan. I don't
think any language will ever see that kind of activity again.

Perl6 has a lot going for it though. I believe with its new OO system,
concurrency similar to Go, and the ability to compile to a binary, might take
this new language to places where Ruby, Python, Perl5 can't go.

And in the similar perl5 fashion, it will be the programmers and not the
corporates that own it. Therefore one is only limited by their imagination and
not their pocket book.

~~~
drostie
Do you mean contributors to the core or to the package system?

Because NPM (for Node.js) has a cool way to browse the recent updates at
100/page at
[https://www.npmjs.org/browse/updated](https://www.npmjs.org/browse/updated)
and so far today over 500 modules have been updated.

We live in a much bigger world than Perl was, so that's not surprising. The
huge trouble is that these hackers don't talk much to each other.

~~~
eCa
The equivalent in the Perl world is at
[https://metacpan.org/recent](https://metacpan.org/recent).

------
esaym
A yapc europe talk mentions even more features:

[http://act.yapc.eu/ye2014/talk/5704](http://act.yapc.eu/ye2014/talk/5704)

------
Mithaldu
As a related preview, Larry's keynote for the Austrian Perl Workshop last
month:

[https://www.youtube.com/watch?v=enlqVqit62Y](https://www.youtube.com/watch?v=enlqVqit62Y)

(He mostly talks about his travels.)

~~~
lmedinas
So Larry uses LinuxMint. Good to know that he sticks to the Free Software
principles :)

~~~
beachwood23
Is that sarcasm? Because Linux Mint certainly includes and provides access to
non-free software.

~~~
baldfat
GNU's child Debian provides access to non-free software. Any OS provides
access to non-free software.

~~~
lmz
> GNU's child Debian provides access to non-free software

Correct. That's why Debian is not in this list of Free GNU/Linux
Distributions: [http://www.gnu.org/distros/free-
distros.html](http://www.gnu.org/distros/free-distros.html)

~~~
baldfat
I can still compile non-free software to any Distro on FSF's list.

The policy is if the official repos have non-free software. You can always
install non-free on any of the FSF listed distros also. Also I think the world
has moved past FSF when you just look at the distro names. Very small
communities.

------
tempodox
After a quick look, Perl 6 still looks like $#%&@ to me. I don't see why
anyone would bother.

When Python 3 came around, I thought it was a good idea and that everyone
would want to migrate as soon as possible. What we got instead is 3 more
parallel installs of language versions. Beside Py-2.7 (which will apparently
never go away), you will need Py-3.3, 3.4 AND 3.5 because every project wants
a different one. Why would anyone want the same drama with Perl?

~~~
dreamweapon
There's definitely a lot of very interesting stuff in Perl 6, but sadly, I can
only get all too well where you're coming from: aside from adding a lot of
visual clutter (which _does_ matter), I've come to see the overuse of sigils
(in both 5 and 6) to be just wrong, conceptually. It's like they're of the
biggest flaws in Perl 5 that should have been at the top of the list of stuff
to get rid of.

Yet they lie at the very heart of what the language _is_ , to many people --
to such an extent that to do without them in Perl 6 would have violated one of
the key design principles from its earliest days: "Perl 6 should still be
Perl."

~~~
raiph
> overuse of sigils

"Overuse" is subjective. If you are you suggesting that some use is good, can
you give an example of usage you think is good and usage you think represents
overuse?

That said, I didn't like some specific things about use of symbols in P5 and
the problems have been fixed in Perl 6.

And of course there is more than one way to do it, for example this is one way
to write the Ackermann function in P6 using Unicode names (symbols) for
parameter/argument identifiers:

proto A(Int \𝑚, Int \𝑛) { @[𝑚][𝑛] //= { _} }

multi A(0, Int \𝑛) { 𝑛 + 1 } multi A(1, Int \𝑛) { 𝑛 + 2 } multi A(2, Int \𝑛) {
3 + 2 _ 𝑛 } multi A(3, Int \𝑛) { 5 + 8 * (2 __𝑛 - 1) }

multi A(Int \𝑚, 0 ) { A(𝑚 - 1, 1) } multi A(Int \𝑚, Int \𝑛) { A(𝑚 - 1, A(𝑚, 𝑛
- 1)) }

(Based on
[http://rosettacode.org/wiki/Ackermann_function#Perl_6](http://rosettacode.org/wiki/Ackermann_function#Perl_6))

~~~
raiph
Hopefully better formatting:

    
    
      proto A(Int \𝑚, Int \𝑛) { @[𝑚][𝑛] //= {} }
    
      multi A(0, Int \𝑛) { 𝑛 + 1 }
      multi A(1, Int \𝑛) { 𝑛 + 2 }
      multi A(2, Int \𝑛) { 3 + 2 𝑛 }
      multi A(3, Int \𝑛) { 5 + 8 * (2 𝑛 - 1) }
    
      multi A(Int \𝑚, 0) { A(𝑚 - 1, 1) }
      multi A(Int \𝑚, Int \𝑛) { A(𝑚 - 1, A(𝑚, 𝑛 - 1)) }

------
tormeh
What's supposed to be so great about Perl 6? I associate Perl with inscrutable
cat-walked-on-the-keyboard programs and little else. Can someone in the know
explain?

~~~
lmm
Perl was, in its day, a breath of fresh air. It had an emphasis on
practicality that made easy things very easy: regex literals, default
arguments like $_, minimal syntax overhead, with things that would be syntax
in other languages hoisted to interpreter args (-e, that arg that means "run
this as an awk-style loop"), and so on. More than that, the project worked as
a holistic ecosystem, rather than just a language and some tools: these days
every language has something like CPAN, but it was a huge innovation at the
time. Perl also pioneered a lot of the unit-testing infrastructure that we
take for granted these days; every project in CPAN was expected to have tests,
using the same libraries, and they ran as part of the install process. A cynic
might say that perl innovated here out of necessity; lacking static typing and
not having VM isolation means good unit tests are a necessity. But still, the
resulting infrastructure is very good, and some very solid programs are
written in perl. In many ways I'd say it was the go of its day.

The downside of the emphasis on practicality was that the language always
suffered from incoherence; with no principled foundation it's been slow to
adapt as the practical things users want to do change (e.g. I'd argue string
manipulation is a lot less important than it used to be - if you were writing
perl today, you might give json manipulation the same prominence as regexes).
Perl 6 may have been an effort to fix this, but went too far in the opposite
direction; overly formalized, with a premature separation between VM and
language that massively slowed development.

There's a lot of good stuff about modern perl - Moose and the like - but IMO
it's too little, too late; other languages have been able to improve their
infrastructure to (mostly) match perl for easy things. Meanwhile perl's
incoherence makes it very hard to write large programs and solve hard
problems, where languages with a firmer theoretical foundation and stronger
stylistic principles have a huge advantage.

~~~
GregBuchholz
I think the impact of Perl is even bigger than what you are describing. I kind
of see Perl as the first language which finally lead the masses out of the
wilderness-of-C, and brought forth the light of reference-counting/garbage-
collection (no more manual memory management and segfaults), dynamic typing,
and "advanced" data structures like hashes/dictionaries (no more off-by-one
errors, no more buggy reimplementations with pointer chasing). And actual
honest-to-goodness strings, not null-terminated abominations. All without out
a syntax that was too scary or unfamiliar. In the 90's Perl was the gateway
drug to the more lispy future that we now inhabit.

~~~
Roboprog
I like that Perl 5 uses reference counting instead of a full-blown GC and that
small scripts start up quickly with a small memory footprint. Alas, Perl 6
went down the garbage collecting virtual machine path, at which point, it has
to catch up with Java while trying to differentiate itself from it.

~~~
raiph
What startup delay and RAM usage do you think is just too large to be
acceptable for a small script, no matter how good a language/compiler is in
other respects?

~~~
Roboprog
Good question, and I'm not even sure. Perl 5 on my Mac is about 1.2 MB
resident to run a one-liner, though, and I'm pretty sure I _can 't_ load the
JVM in 1 or 2 MB. Need to follow up on that to find smallest practical Java
program (as a contrast)

Similarly (same laptop), I can get perl to print its version (5.16.2) in about
0.01 secs (2nd time), but java (1.8.0_11-b12) takes about 0.11 secs (2nd
time).

Most of my work is in Java, but it gets to be a tyrannical hammer that must be
used for everything in some minds :-(

Again: Parrot having to compete with the JVM makes me sad.

~~~
raiph
Fwiw most Rakudo devs now prefer MoarVM for most things because it's generally
the fastest, leanest, least buggy and most specification compliant of the
currently available backends (MoarVM, JVM, Parrot). MoarVM is definitely the
right pick for folk who want the leanest startup P6 can deliver.

[http://moarvm.org/](http://moarvm.org/)

Even with the MoarVM backend, Rakudo takes a lot more time and RAM to startup
than the compiler for most mainstream languages. It handily beats the JVMs
devs use but that's not saying much.

On the third hand, a few devs have said they are regularly using Rakudo at
$work, including for one-liners.

If anyone wants to try P6 I recommend RakudoBrew:

[https://github.com/tadzik/rakudobrew](https://github.com/tadzik/rakudobrew)

------
klodolph
I wonder what kind of community will grow up around Perl 6.

~~~
progman
I wonder which features of Perl 6 would make them want to use it at all.

~~~
raiph
If I had to pick one thing it would be practical Unicode for the rest of the
world.

Most English devs have no idea just how bad things are with current langs.

A quick experiment.

First, translate "Practical" in to Thai: ปฏิบัติจริง
([https://translate.google.com/#en/th/Practical](https://translate.google.com/#en/th/Practical))

Next, see Unicode Inspector:
([http://apps.timwhitlock.info/unicode/inspect?s=ปฏิบัติจริง](http://apps.timwhitlock.info/unicode/inspect?s=ปฏิบัติจริง))

Note that ปฏิบัติจริง is 9 somethings or 11 something elses.

Finally, move the cursor along the "characters" in either google translate's
output field (it's fiddly but works if you are patient) or the Unicode
Inspector.

 __Note that there are SEVEN movements. __

What sort of elements are these cursor movements moving over?

Graphemes.

There aren't 7 Code Points. Or 7 Code Units. Or 7 Bytes.

There are 7 Graphemes.

Graphemes are defined in the Unicode consortium's glossary as "What a user
thinks of as a character."

[http://www.unicode.org/glossary/#grapheme](http://www.unicode.org/glossary/#grapheme)

There really couldn't be a more fundamentally important aspect of text
processing for half the planet than dealing with text at the grapheme level
("what a user thinks of as a character") BY DEFAULT, unless the dev wants to
do tricky stuff.

But almost all current langs (including Python 3.x) get this stuff terribly
wrong in all sorts of ways.

Perl 6 takes graphemes seriously.

From Synopsis 15
([https://raw.githubusercontent.com/perl6/specs/master/S15-uni...](https://raw.githubusercontent.com/perl6/specs/master/S15-unicode.pod)):

* Perl 6 by default operates on graphemes

* Perl 6, by default, stores all strings given to it in NFG form, Normalization Form Grapheme. It's a Perl 6-invented character representation, designed to deal with un-precomposed graphemes properly.

* The Perl 6 C<Str> type, and more generally the C<Stringy> role, deals exclusively in NFG form.

* By default regexes operate on the grapheme (NFG) level, regardless of how the string itself is stored.

So, as far as graphemes ("what a user thinks of as a character") are
concerned, Perl 6 gets this basic aspect of text processing right when almost
all others get it terribly wrong.

(There are a couple other langs that seem to have made an effort to take
graphemes seriously enough. For example, the .length function for strings in
Elixir (related to Erlang) returns the count of graphemes by default. And a
few like Clojure take graphemes seriously, just not seriously enough.)

So, a significant and rapidly growing chunk of the planet's programmer
population are likely to end up interested in at least playing with P6 to see
if it gets this bit right (and they'll find it does).

~~~
chromatic
_Perl 6, by default, stores all strings given to it in NFG form, Normalization
Form Grapheme._

Perhaps in specification, the feature comparison matrix suggests that NFG is
Not Yet Implemented in any implementation in practice:

[http://perl6.org/compilers/features](http://perl6.org/compilers/features)

I wonder if that "significant and rapidly growing chunk of the planet's
programmer population" will find that an untested and partially implemented
feature suffices for their needs in the real world.

------
nilsjuenemann
I am still waiting for Hurd.

~~~
Svip
When will be the Year of Hurd on the Desktop?

------
BenGoldberg
2015 will be the year that Perl 6 officially announces the date on which it
will launch for production use.

------
davidy123
To me Perl is the monk's language. Not very friendly monks either. Solitary
monks, except when they're talking about the virtues of Perl with each other.
Except within intentional cloisters, it's not a good language to use for
largescale or outward looking projects.

------
pjmlp
Does it still matter? My last line of Perl at work was back in 2005.

Since then, our clients have been using Python, Groovy and Powershell code for
the same set of tasks.

~~~
philbarr
I know this is ever so slightly off topic, but is Groovy in popular use these
days? I seem to see it mentioned quite a lot recently.

If so, what for? General scripting tasks?

~~~
laichzeit0
Groovy is one of the best kept secrets of the JVM scripting world. I hardly
_ever_ write pure Java if I can do it in Groovy instead. Look at how insanely
easy parallel programming is in Groovy using gpars:
[http://gpars.codehaus.org/](http://gpars.codehaus.org/)

It's literally:

GParsPool.withPool { def result = [1, 2, 3, 4, 5].collectParallel {it * 2} }

Why oh why people still torture themselves with pure Java.

~~~
raiph
An equivalent in P6:

    
    
      [1,2,3,4,5] X* 2
    

This (theoretically) parallel processes and then puts the results back in
order. The X is the cross metaoperator; it applies the following operator (the
* symbol which is the multiply operator) to each of the combinations of the
items in the lists on its left and right, and does so in parallel if the
compiler so chooses, and ensures the results are returned as if it was
processed sequentially.

------
baldfat
2015 Half Life 3 can be announced

~~~
tylermac1
2015\. 5 - (1 * 0) - 2 = 3. Confirmed.

------
rafekett
hopefully all my cryptic perl5 1-liners will still work.

~~~
eCa
Perl 5 is not going away for a long time.

------
diakritikal
but, but, but... Netcraft has confirmed: Perl is dying!

------
mgarfias
HAHAHAHHAHAHAHAHAHAHHAHAHAHAHAHHAHAHAHAHAHHAHAHAHAHA

------
lawnchair_larry
Perl is easily the worst language that the world has ever known. Let's just
forget that mistake and move on.

~~~
BenGoldberg
You consider awk, sed, and bash to be better programming languages than perl?
You're funny.

