
Wow, Perl 6 [video] - donaldihunter
https://www.youtube.com/watch?v=paa3niF72Nw
======
zoffix222
Author here.

Never would've thought my slides I used for a presentation to 20-something
people would make it to front page of HN...

You can watch the actual presentation here:
[https://www.youtube.com/watch?v=paa3niF72Nw](https://www.youtube.com/watch?v=paa3niF72Nw)
I also wrote down the answers for questions that came up during the
presentation here: [http://blogs.perl.org/users/zoffix_znet/2016/03/wow-
perl-6-t...](http://blogs.perl.org/users/zoffix_znet/2016/03/wow-perl-6-talk-
slides-recording-and-answers-to-questions.html) (I now updated to include
these in the slides too)

And to respond to some commenters, yes, some features (like the shrug
operator) were presented in a humorous fashion. No one's advocating you
actually make your code look like an orgy of emoticons. I didn't use PPT for
the slides, because I like the freedom of needing only a browser to display
the slides. They weren't really meant for public consumption, thus the UI is
not entirely obvious.

I'm unsure why the person who posted this on HN posted only the slides and not
the recording or the blog post. But I have no control over that.

And if anyone has any more questions, you can join us on IRC at
irc://irc.freenode.net/#perl6

Cheers.

~~~
ohitsdom
> I didn't use PPT for the slides, because I like the freedom of needing only
> a browser to display the slides.

What did you use to make the presentation? Custom HTML/JS?

~~~
zoffix222
No, I just took it from another presenter and changed the content of the
slides. I believe it's actually a themeable slideshow thingie someone else
developed.

~~~
nickodell
Got a git url?

~~~
zoffix222
Only to my slides:
[https://github.com/zoffixznet/TPM-2016](https://github.com/zoffixznet/TPM-2016)

------
muraiki
My boss came up with a good analogy to describe why some people like Perl and
why some don't. There are some people who appreciate games that are very
abstract and with simple rules from which complex behavior emerges, such as a
game like Go. These people tend to be drawn towards programming languages that
are built out of small pieces with a consistent philosophy from the ground up,
such as lisp or Haskell. There are others who enjoy games with complex
rulesets and lots of detail. These people probably like Perl with all its
nooks and crannies.

Perl code has many things to discover, and the way you assemble larger things
relies on unique features of these smaller things. While in the end both
approaches have you building a larger thing out of smaller things, the former
approach is more likely to be built out of all of the same small thing, while
the latter is more likely to be built out of a bunch of different small
things. I think that's why some people can find Perl code to be "dense" and
others find it "expressive".

I think Perl 6 was built with a much more consistent philosophy behind it than
Perl 5, so this analogy breaks down a bit. But the user experience, the
"Perlishness" of it, still remains. To the extent that people pick sides in
language wars, I hope this analogy can help people appreciate the other side.

~~~
Estragon

      > There are some people who appreciate games that are very abstract and with
      > simple rules from which complex behavior emerges, such as a game like Go.
    

I love Go, but I despise perl. Perl is not built on "very abstract and simple
rules. For instance, this code is quite hard to reason about:

    
    
        1: my @to-infinity-and-beyond = 0, 2 … ∞;
        2: say @to-infinity-and-beyond[1008];
        
        # OUTPUT:
        # 2016
    

This is self-indulgent mucking around. An inference procedure which goes from
"0, 2 … ∞" to "the even-nonnegative integers" is bound to lead to unpleasant
and hard-to-debug surprises.

~~~
Ovid
I'm confused. What's so hard to reason about that? It's very obvious that it
prints 2016. Maybe "infinite lazy lists" isn't something that most mainstream
languages consider, but honestly, they're very handy and hardly "self-
indulgent mucking about."

(Though I'd probably use an asterisk instead of the infinity symbol)

~~~
JadeNB
Indeed, if we're going to hold up Haskell as an exemplar of simplicity—which,
in its philosophy if not always in its implementation, I think it is—then we
can hardly ding Perl for including lazy lists!

------
scrame
Some of this looks great. I'm suffering through making some internal tools an
old version of php after deprecating some older perl 5 cgi scripts on an even
older CentOS box, and reaaally not enjoying it.

I understand the value of coding in other texts, but I still get a little
squicked out seeing the characters for pi, and union, etc in code. I know they
have ascii equivalents, but its not saving a keystroke, exactly. Though, it
does remind me of some joker Swift posts where the identifiers were all
emoji's. I'd keep interns away from it for now.

The built-in grammar parser looks great! C-lib integration looks promising.
Multi-methods look nice. Operator overloads look ... safe-ish-er than C++.
Simpler profiling. Perl5 module + other language in-lining looks great and
terrible. "Whatever" wildcards don't quite seem like full pattern-matching,
but better than $_ or endless shift loops.

Overall, seems pretty good! If I can just drop it in for my "perl -lne
'm|($regex)|g&&print$1'" command-line use I might swap it out sooner than
later.

~~~
zoffix222
You read a piece of code many more times than you write it, so even if an
extra keystroke is needed to make the code more readable, it's worth it, IMO.

But, I find it very easy to type all that fancy stuff with XCompose sequences.
My keyboard also has a bunch of media keys I never use, so it's probably
possible to map those into the unicode ops.

------
Montezuma123
I for one am extremely excited for Perl6's ecosystem to grow, documentation to
increase, and for the performance optimizations to reach maturity.

Perl5 has raw text processing power, but Perl6 kicks that into overdrive with
a much cleaner language (clean and powerful OO with a MOP), with cool goodies
from a dozen other languages. I think this may be the first decent contender
for the 100 year language if it becomes production worthy.

~~~
jqm
"100 year language..."

God I sure hope not. (Only if it's a lot easier to maintain than Perl 5
maybe...)

I have bad feelings about Perl after having to parse and cleanup a bunch of
abominably written multi-thousand line pages full of regular expressions and
all manner of cleverness. I mean, I actually hated Perl so badly I believed it
was the worst invention ever. Then I saw a well written project and was easily
able to understand and felt slightly less negative. So it's not entirely the
language, but to this day seeing 'Perl' brings negative emotions to the
surface. Something like PTSD I guess. It will probably take 100 years for that
to go away and me to willingly look at anything called 'Perl'.

~~~
kbenson
Believe me, I've seen bad Perl[1]. Luckily I was already very familiar with
Perl, so I was able to discern that the developer was just batty.

1: Global variables everywhere. Every function call did not pass arguments,
but instead they assigned data to global variables in the immediately
preceding lines, called the function, and then used those global variables.
Copious use of SQL where every query was saved in a variable called $stmtA,
$stmtB or $stmtC, depending on how many levels of sub-querying needed to be
done in a loop. Obscure variable names in general. Zero comments. No use of
modules, everything in one flat text file (for 5-10 or more flat text files),
no code reuse. PHP used in the same project, to the same standard (one large
sprawling multi-thousand line PHP file). This was an open source project, and
to this day I wonder if possibly it was all a purposeful design decision, so
they could charge for development requests.

------
andrepd
For a while there I was confused on whether this was an April fools prank or
not. Which certainly does justice to Perl.

~~~
S4M
I thought it was strange to be able to use greek characters and the like in
the code, and then I arrived at the slide about Custom Terms and Operators[0]
and... now I think it's an April fool.

[0] [http://tpm2016.zoffix.com/#/12](http://tpm2016.zoffix.com/#/12)

~~~
coldtea
> _I thought it was strange to be able to use greek characters and the like in
> the code_

We have been doing that for AGES. Not just in languages like APL, but even in
Javascript, Go and tons more...

[https://rosettacode.org/wiki/Unicode_variable_names](https://rosettacode.org/wiki/Unicode_variable_names)

~~~
S4M
Yes, Unicode variables are a thing, but I am afraid it makes the language less
approachable if it requires a special keyboard or at least some tweaks in the
IDE to input those characters - and I say that as someone who added some
macros in emacs to enter French accentuated characters with an American
keyboard. I think it's one of the reason APL isn't much used these days...

~~~
raiph
Perl 6 does not require use of Unicode characters in code and does not require
a special keyboard.

It does require some mechanism to input Unicode if that's what you want to do
but that wil be true for any language -- it's nothing to do with Perl 6.

------
giancarlostoro
So just curious can anyone share their uses of Perl 6 and if they have
anything going on in production? I already know that CraigsList at one point
(if not still) is powered by Perl, but I'm not sure which Perl that is really.

On another note: I find it quite fascinating that Perl 6 is implemented in
Perl 6, that would in theory allow you to implement Perl for .NET or the JVM
and retain plenty of Perl as a result if I'm not mistaken.

Edit: fixed up my post

~~~
Montezuma123
Answering your question:

I haven't heard of anything in PROD yet (there is a QUORA question on this),
but I know there are several Perl shops that would jump on this when it's
fully ready. You can use it today for most things (assuming hard performance
isn't needed). When the optimizations and JIT are complete, you'll have a very
fast OO language with optional types. My intended use cases are for pretty
much anything that doesn't need a GUI like a .NET desktop app. I have a LOT of
data at work and look forward to using the Grammar functionality to build
useful and beautiful parsing code.

I believe Perl6 is bootstrapped by a subsection of Perl6 called NQP (not quite
perl)which is written in C.

~~~
scrame
I remember an earlier Perl6/Rakudo post here (I think), where chromatic showed
up and mentioned a few things that had been running reliably for a couple
years in his stack. That it was at least "good enough" for his purposes.

~~~
labster
That's hard to believe. I've never heard chromatic have anything positive to
say about Perl 6.

~~~
cygx
Chromatic used to be a proponent of Perl6, defending it against criticism and
claims of being vaporware. I don't quite remember when he became a critic,
2010-ish or so.

~~~
tadzik_
Around the time when Rakudo further detached itself from Parrot, and declared
an effort to support alternative VMs (eventually writing one of its own).

~~~
kbenson
No, I think it was well before that, and he was just more vocal at that point.
IIRC became rather disillusioned with the project quite a while back, and he
wasn't even involved with it (maybe nominally) at that point.

------
smitherfield
I'm reminded of the infamous quote from Star Wars prequel producer Rick
McCallum: "It's so dense; every single image has so much going on."

------
latenightcoding
Confusing UI! Here is the video:
[https://www.youtube.com/watch?v=paa3niF72Nw](https://www.youtube.com/watch?v=paa3niF72Nw)

I was planning to assist but had something else to do.

~~~
omaranto
Confusing UI? It's text separated into a sequence of pages: you read a page
and when you're done you advance to the next one and so on. I like that sort
of UI, books use it too.

------
garfieldnate
The title sums it up. Good ol' Perl text processing, plus awesome new list
processing (will be useful for n-grams, etc.). My favorite is slide #85,
though. Communication with other processes in Perl 5 is always a huge pain,
and I can never get it to not hang; you have to unbuffer STDOUT via $|++, then
you have to read from STDIN and maybe STDERR to keep it from blocking. The
Java solution is similarly painful, requiring spinning up threads for reading
each stream (see
[http://stackoverflow.com/questions/14165517/processbuilder-f...](http://stackoverflow.com/questions/14165517/processbuilder-
forwarding-stdout-and-stderr-of-started-processes-without-blocki)).

------
Tepix
There's a new Perl 6 book being written as we speak. I have high hopes that it
can follow the excellent example of the Camel book. If it does, it can be the
starting shot that Perl 6 perhaps still needs.

~~~
sb057
Mind sharing the name of that upcoming book?

~~~
Montezuma123
Learning Perl6. It will be the continuation of Learning Perl, but for Perl6
instead of Perl5 I think. My bet is they'll (last edition had 3
authors)continue to publish both as both languages will survive for a long
time until Perl6 wins out. There's also the possibility Perl6 just never
really takes off, but I hope not.

Brian D. Foy has a WordPress site up for it.

There is a perl6 intro website as well that is awesome.

~~~
justinator
If you are taking preorders, you've got mine!

------
eximius
Hm. What is the origin of 'Texas symbols'? A reference to being old-fashioned
or something? It's amusing, though I'm not sure it's the clearest euphemism

~~~
dugword
Everything is bigger in Texas...

Texas symbols are two or more ascii characters that replace a single Unicode
symbol.

~~~
eximius
Herm. That does seem simpler. I should have thought of that. Still, weird
name.

~~~
peteretep
That is the most Perl name (and explanation) I can imagine. For some of us,
that's the charm!

------
rjeli

      say "Code took {now - INIT now} seconds to run";
      # Code took 0.01111143 seconds to run
    

`INIT now` ... aka COMEFROM.

~~~
tyingq
It's more like a label for code to run at start. Also shows the Perl 6 way to
interpolate code within a string literal.

Compare to the rough Perl 5 equiv, for versions of Perl 5 before say existed:

    
    
      sleep 2;
      print "Code took @{[time() - $then]} seconds to run\n";
      INIT{$then=time();}

------
rdtsc
> sub prefix:<∑> (*@els) { @els.sum }

It is not exactly selling it ;-)

~~~
kbenson
That depends on your audience. There's a far more people that know
mathematical summation than know how to program. Allowing a language to easily
make good use of preexisting knowledge seems like a good selling point to me.
Making it optional, as in provided through a module seems a sane way to gate
it as well.

~~~
rdtsc
I was just implying that Perl was jokingly called a "write once" language. It
certiainly was for me. Remember starting a bionformatics project with it, and
after a few months, I could not read my own code. This just reminded me of
that.

~~~
fibo
"Perl gives you enough rope to you .." cit. Larry Wall. It is cause Perl is
very expressive. I usually write code even my boss can read, and looks trivial
remember Perl is inspired on natural languuages. On the other hand you can
write very cryptic code, in every language, but Perl can be very tricky: use
comments for the future you.

Learning Perl was a great excercise, after that I could learn JavaScript
really easy not only cause they are so similar but cause Perl and its culture
teaches you about programming. It is a milestone.

~~~
Montezuma123
I will say that I started using Perl5 recently (big python fan). I expected
everything to be crusty and bad. CPAN worked great, and the doc...my GOSH the
doc is sooo good. It is everywhere. In my command-line, gazzillions of
websites. I forgot what it was like to not be dependent on StackOverflow.

~~~
collyw
Perl Monks is far better than Stack Overflow for Perl questions, as they
actively encourage the discussion that Stack Overflow avoids, leading to a
greater understanding afterwards as opposed to just something that works.

~~~
Montezuma123
I can't count the # of times a super helpful question was closed on
StackOverflow for being "off topic" or being likely to cause a flame war. I do
like Perl Monks, but wish the format was a little different UI wise. Def still
usable though.

------
Gratsby
I'm still upset with the perl6 devs for sending me down the Haskell rathole so
many years ago, but perl brought a lot of pretty great things forward and it
was by far the best text parsing language for entirely too long. I like what
I'm seeing today and I'm willing to give it another shot. I am a bit concerned
about whether perl is going to be able to gain momentum again.

It won't take too long before people start checking it out and there are some
good real-world use case benchmarks.

------
CuriouslyC
I am trying really hard to approach Perl 6 with an open mind, but my gut
reaction to most of the code I see is negative.

It seems like the guiding principle was to create a language that gives you
incredible freedom in terms of how you do things. While that is great in
theory, in practice mentally modelling that expressiveness reduces the amount
of attention I can devote to the specific problems being addressed by the
code. Maybe if I put a lot of time in that would change; I don't see a big
potential payout though, so I'm not going to bother.

With that being said, grammars look well designed. If all I was doing was
parsing/transforming text, I would definitely consider using Perl 6.

~~~
Roboprog
I used to really like Perl, but endless operator-obfuscation nonsense a la
C++, Perl 6, Scala REALLY makes me appreciate Lisp (should I ever get to use
it again outside of 80s college work). Every function has a plain old name, no
magic symbol operators, inner parens evaluate first. No bullshit.

~~~
zvrba
> endless operator-obfuscation nonsense a la C++

C++? Ever looked at some "advanced" Haskell code?

~~~
maemre
I don't know why you got downvoted but Haskell also gives excessive freedom
for infix operators with adjustable precedence, ability to make up new
operators etc. and a lot of libraries use such operators excessively so I
think you are right. Come to think of whenever I need to write a PEG or use a
not-so-common typeclass I need to open documentation to see what juxtaposition
of ascii characters to use where. On the other hand, I think the
expressibility outweighs the cognitive overhead in case of infix operators,
especially when using relatively common operators (Scala kind-of has a similar
feature and I (ab)use it frequently and it is nicer and closer to math when
combined with Unicode. Closeness to math is an important feat. when
translating academic papers into code or vice versa).

~~~
Roboprog
The funny thing is I have seen many more damaging errors caused by operator
precedence / grouping, which continue running and doing the wrong thing, than
by type mismatch errors, which blow up and stop.

------
foota
I remember thinking the advanced pattern matching was nothing short of amazing
when I read about it a while ago.

~~~
pmarreck
it was amazing in Erlang years ago, where it was probably borrowed from, as
well as Elixir today lol [http://elixir-lang.org/getting-started/pattern-
matching.html](http://elixir-lang.org/getting-started/pattern-matching.html)

~~~
foota
Sorry, not what I meant. I was referring to the rules.

------
ableal
I took a couple of minutes to chase the butterfly ...

It's featured here: [https://perl6.org/](https://perl6.org/)

 _" Hi, my name is Camelia. I'm the spokesbug for Perl 6, [...]"_

(image: [https://perl6.org/camelia-logo.png](https://perl6.org/camelia-
logo.png))

and the link in the image leads to the 2009 rationale by Larry Wall:
[http://github.com/perl6/mu/raw/master/misc/camelia.txt](http://github.com/perl6/mu/raw/master/misc/camelia.txt)

Also, some people were not amused:
[http://www.perlmonks.org/?node_id=1149576](http://www.perlmonks.org/?node_id=1149576)

~~~
effie
> _Also, some people were not amused:_

[http://www.perlmonks.org/?node_id=1149576](http://www.perlmonks.org/?node_id=1149576)

Eek. All work and no play makes Jack a dull boy.

------
mrkgnao
I see a lot of Haskell-ish things there.

~~~
Montezuma123
Haskell had a big influence on Perl6. Lazy evaluation is built in to the
language just like Haskell. If you look at the bottom of the Perl6 website
you'll see the Fibonacci sequence using a lazy infinite list.

Fun fact, one of the original Perl6 implementations was done in Haskell (the
parrot VM I think).

~~~
ab5tract
Parrot VM is a separate project from Perl 6. It originally started as a VM
that could handle Perl 6, but then decided it wanted to focus on being a
general VM for dynamic languages. This led to a rift between the two
communities.

Before all that happened, though, there was Pugs, which is the Perl-6-on-
Haskell thingy that you are thinking of. A fair portion of the current Perl 6
test suite comes from the Pugs project, at least originally. And, IIUC, it was
the success of Pugs that revived the Perl 6 efforts and led to the Rakudo
project (Perl 6 implemented in Perl 6) which is what we still use today.

So yeah, it is definitely the case that Haskell had a big influence on Perl 6
both from a language design and a more raw "inspiration" in the sense that it
literally might not have happened without it -- the original wave of Perl 6
development had largely failed and there was some serious burnout happening.
Pugs, Haskell, and Audrey Tang managed to put the ship back on course.

A lot of history happens in 16 years, and I make no claim to know the truth of
any of it. There are more than a few rants floating around out there that will
give you a picture of what happened when, albeit from a ranty perspective.
Hopefully one day it will all be collected in a more comprehensive historical
document.

~~~
chromatic
_It originally started as a VM that could handle Perl 6, but then decided it
wanted to focus on being a general VM for dynamic languages._

I think this is misleading; one of the _original_ goals for Parrot was
language interoperability, especially between Perl and P6.

~~~
ab5tract
Fair critique. I meant that in the sense that the original vision of Parrot
was quite closely tied to delivering a VM which could handle P6. By logical
extension, this would mean it could handle any given dynamic language.

However, I am talking about the focus shift that made Perl 6 just one among
many of "client languages" (for lack of a better word). This was a distinct
moment, at least as far as I remember it.

~~~
chromatic
_By logical extension, this would mean it could handle any given dynamic
language._

Not only by logical extension! One of Larry's primary goals was to "let any
language use the CPAN", _through_ Parrot. Running Perl and P6 on the same VM,
in process, without embedding libperl.so was the plan as far back as I can
remember.

 _I am talking about the focus shift that made Perl 6 just one among many of
"client languages"_

That's been a common, though unrealistic, criticism of Parrot for the past
several years. Various contributors never had (or lost) interest in P6 but
wanted to work on an multi-language VM. Expecting that all volunteers to a
project have the same primary goal in mind is ridiculous and ignores decades
of F/OSS contributions; it's easy to look at the Linux kernel and recognize
that multiple competing business and personal interests can be shepherded into
a technically useful result that meets a lot of those needs despite their
competing interests.

People implementing `invokedynamic` didn't somehow make Java a second-class
citizen on the JVM, for example.

You can certainly argue that we handled some of those competing interests
poorly (I've argued this), but the "focus shift" argument rests on some
questionable assumptions and ignores other, more important, concerns.

~~~
ab5tract
Hey chromatic, maybe you missed the parts where I explicitly said that my
historical knowledge is only as good as the sources I have read (+/\- my
sideline experience)? Please stop framing my clarifications as intentionally
disingenuous. If you have additional historical perspectives to share, then by
all means. I even explicitly asked for that in my original response.

Now, I think _you_ are also being a bit disingenuous. The Parrot team shifted
focus. You can say all you want that the original vision was always all
dynamic languages (which I already said, by the way). But to frame the
original Parrot efforts as anything less than building a foundation for Perl 6
clashes with my own memory of the timeline.

If the JVM and the Java teams essentially stopped talking to each other, I
would definitely consider that to be some form of collective decision making
representing an overall shift in focus for the projects. That's more akin to
what I remember of the Parrot/P6 split. Even your post hints at it when you
say "Various contributors never had _(or lost)_ interest in P6". But again, I
was only "involved" from the sidelines and am limited to the available
materials, including yours, and synthesizing them from individual rants into
some semblance of a balanced picture.

~~~
chromatic
_If the JVM and the Java teams essentially stopped talking to each other, I
would definitely consider that to be some form of collective decision making
representing an overall shift in focus for the projects. That 's more akin to
what I remember of the Parrot/P6 split._

That's the story certain people have been telling for quite a while, but it
never happened while I was involved in either project. If you look at the
use.perl.org archives, you can see that both Allison and I (as the architect
of Parrot and a lead developer, respectively) were collaborating closely with
Rakudo developers on the weekly P6 design calls.

I understand that, from the outside, there's a natural tendency to take all of
the perspectives and comments and assume that the truth lies somewhere in the
middle, but the historical record is out there and available. I've certainly
referred to it directly when posting my opinions about what happened and when.

------
mbrock
Perl 6 fills me with a sense of childlike wonder and hope for the future and
excitement about the world.

Hacker News takes that excitement and beats it into a nasty pulp on the floor.

Perl was my first language after QBASIC and a failed attempt at C. I thought
it was super cool.

I love how it's optimized for being awesome instead of pandering to dumbass
lazy coworkers who won't RTFM.

~~~
dang
> Hacker News takes that excitement and beats it into a nasty pulp on the
> floor.

You're as much a part of HN as anyone else is, and tons of people here like
Perl 6. That's presumably why stories about it such as this one get upvoted so
highly.

Instead of dissing the community and adding to the negativity, it would be
better to ignore it (which is hard, I know) and share some things about what
you like so much.

~~~
mbrock
Thanks for your moderation! I'll just add that I generally love Hacker News,
and I wish I knew a more constructive way to express my feeling here. (By the
way, I think it's an interesting approach of MetaFilter to have a "meta" forum
for meta-discussions like this one...)

Larry Wall gave a state of the onion speech about Perl as a "postmodern"
language... which means something like, its guiding principles aren't only
classical or modernist... it doesn't just aim for simplicity, purity,
elegance, unity, etc... instead, it includes some very different values, like
plurality, camp, fun, "just weird enough"-ness, "ha ha only serious"... some
quotes:

[http://www.wall.org/~larry/pm.html](http://www.wall.org/~larry/pm.html)

> I combined these cool features [from all kinds of other languages] in a way
> that makes sense to me as a postmodern linguist, not in a way that makes
> sense to the typical Modernistic computer scientist. Recall that the essence
> of Modernism is to take one cool idea and drive it into the ground.

> Well...Perl does one thing, and does it well. What it does well is to
> integrate all its features into one language. More importantly, it does this
> without making them all look like each other. Ducts shouldn't look like
> girders, and girders shouldn't look like ducts. Neither of those should look
> like water pipes, and it's really important that water pipes not look like
> sewer pipes. Or smell like sewer pipes. Modernism says that we should make
> all these things look the same (and preferably invisible). Postmodernism
> says it's okay for them to stick out, and to look different, because a duct
> ought to look like a duct, and a sewer pipe ought to look like a sewer pipe,
> and hammer ought to look like a hammer, and a telephone ought to look like
> either a telephone, or a Star Trek communicator.

> How does Perl put the focus onto the creativity of the programmer? Very
> simple. Perl is humble. It doesn't try to tell the programmer how to
> program. It lets the programmer decide what rules today, and what sucks. It
> doesn't have any theoretical axes to grind. And where it has theoretical
> axes, it doesn't grind them. Perl doesn't have any agenda at all, other than
> to be maximally useful to the maximal number of people. To be the duct tape
> of the Internet, and of everything else. You've heard the joke, I'm sure.
> How is duct tape like the Force? It has a light side, and a dark side, and
> it holds the universe together.

> Let me state my beliefs about this in the strongest possible way. The very
> fact that it's possible to write messy programs in Perl is also what makes
> it possible to write programs that are cleaner in Perl than they could ever
> be in a language that attempts to enforce cleanliness. The potential for
> greater good goes right along with the potential for greater evil.

I love this attitude, and I think it's very hackeresque, so yeah, it's nice to
see it upvoted and discussed on Hacker News.

~~~
Diederich
This talk literally changed my life. I was very much of an "or" person before,
with various pureist views on all kinds of things. Ever since, I have embraced
the "and" perspective in most every area.

------
reitanqild
Favourite so far, the "whatever" operator :-)

~~~
draegtun
It's available for Perl5 too -
[https://metacpan.org/pod/Whatever](https://metacpan.org/pod/Whatever)

------
awwaiid
In a few weeks we are having the DC-Baltimore Perl Workshop (in Baltimore on
April 16) where there are a few talks on Perl 6. Join us!
[http://dcbpw.org/](http://dcbpw.org/)

------
Ultimatt
If anyone's interested in following Perl 6 news the subreddit usually gets
most updates:

[https://www.reddit.com/r/perl6](https://www.reddit.com/r/perl6)

------
betimsl
So much of the syntactic sugar that you'll almost always will forget to use.

~~~
white-flame
That's what I like about Lisp's s-expressions: Every operator is syntactically
equivalent, so there tend not to be as many "forgotten tricks". You just write
the code that does the thing.

------
mostafah
Does anybody know if there is any plan for updating the Camel Book for Perl 6?

------
Estragon

       say "Code took {now - INIT now} seconds to run";
       # Code took 0.01111143 seconds to run
    

Implicit string interpolation??? What if I just want to print out the string
"now"?

~~~
oleganza
Why implicit? There are braces around `now - INIT now`. In Ruby it'd be "Code
took #{Time.now - start_time} seconds to run".

~~~
Estragon
Ah, right. Thanks.

------
throw7
Is this is a joke or does perl 6 actually use that hyper arrows thing? Reminds
me of an old language that used math symbols and had a custom keyboard with
those keys on it.

~~~
JadeNB
> Reminds me of an old language that used math symbols and had a custom
> keyboard with those keys on it.

In case you're interested, that was the inventively named "A Programming
Language", APL
([https://en.wikipedia.org/wiki/APL_(programming_language)](https://en.wikipedia.org/wiki/APL_\(programming_language\))
).

------
jgalt212
unicode sigils? yikes!

~~~
stevep98
Yes, now what we need is a programmer's keyboard with some nice 'alt-keys' for
those sigils.

~~~
momzer
Julia has a few Unicode operators and will allow you to tabcomplete the LaTeX
symbol in the REPL [1]. For example, \div followed by TAB becomes ÷. This can
be implemented in popular editors [2].

[1] Not all are the common LaTeX macros. See
[http://docs.julialang.org/en/latest/manual/unicode-
input/](http://docs.julialang.org/en/latest/manual/unicode-input/)

[2] [https://github.com/JuliaLang/julia-
vim](https://github.com/JuliaLang/julia-vim)

------
dhon_
For anyone else that's confused - the linked page above _is_ the presentation,
but you need to use space or arrow keys to navigate.

Also, the URL at the bottom is broken (says TPM2016.zoffix.com but links to
[http://zoffix.com/TMP2016](http://zoffix.com/TMP2016))

~~~
coldtea
I was 100% sure there would be a comment such as this.

How are HNers still confused? The same exact instructions have been given time
and again, for almost each and every presentation posted on HN -- and there
are always 1-2 comments asking about them for any new presentation posted.

New users? Not technical enough to try the keyboard arrows and/or space?

~~~
NDizzle
Sites like this would make sense to me if I downloaded them as .ppt files.

I don't understand the need to 1) be so clever and 2) get mad when people call
you for being annoyingly clever.

I mean, first you take away the scroll bar, because it's ugly. Fine. Whatever.
Next, you expect me cause the page to transition by moving RIGHT and LEFT. Not
UP and DOWN, you know, like web pages have always worked. Finally, you don't
bother to mention this fact anywhere on the website?!

~~~
coldtea
> _I don 't understand the need to 1) be so clever and 2) get mad when people
> call you for being annoyingly clever._

What's clever? It's just a link to an online presentation. They don't use
links etc because it's not a web page, just a html document -- it's primary
use is for seeing it as slides through a projector.

This fact is evident both from the text and from the site's looks, and from
that everything else follows (how you navigate, etc).

But confusion would still be OK, if we haven't had the exact same discussion
100s of times before on HN -- and if we weren't 99% devs, supposed to be able
to solve much worse "mysteries" on our own...

~~~
reitanqild
> But confusion would still be OK, if we haven't had the exact same discussion
> 100s of times before on HN

Hyperbole much? Or am I getting forgetful?

> and if we weren't 99% devs, supposed to be able to solve much worse
> "mysteries" on our own...

Ok, you get points for this.

------
galistoca
[http://tpm2016.zoffix.com/#/13](http://tpm2016.zoffix.com/#/13)

==> Is this a feature that Perl authors are promoting about the language? If
so, I can understand why it's not gaining traction. Coding like this benefits
absolutely NO ONE--including the one who wrote the code. The hipster coder
who's just excited to learn perl for the first time may try it out, just to
come back the next day and wonder "what the hell did I write"

~~~
dang
This kind of response is as reflexive as it is common; every innovation in
programming language notation meets with it immediately. I think it has to be
regarded as a middlebrow dismissal, indeed _the_ middlebrow dismissal in its
class. It's Tall Poppy Syndrome applied to programming languages: no
unfamiliar expressions allowed.

No language makes sense before you learn it. Therefore unfamiliarity should
cause us to suspend judgment, not rush to it. Otherwise we end up with what
Alan Kay calls pop culture programming, which tragically junks things like the
breathtakingly beautiful and powerful APL, and limits us to surface tweaks
around the edges.

~~~
galistoca
I studied natural language processing so have used perl a lot in the past. I
kind of drifted away since then, but remember that it made me feel cool when I
was writing a perl code, but made me feel stupid when reading one--even the
ones I wrote--kind of like how regular expression is easy to write but hard to
interpret. I think a language needs to be both easy to express and easy to
comprehend in order to gain adoption and that's what I was trying to say.

~~~
Mithaldu
If reading regexes you wrote is a pain point for you, then you're not making
as much use of the readability tools Perl provides as you could, i.e. the /x
modifier to make unescaped whitespace insignificant, and in-regex comments. (
[http://www.perl.com/pub/2004/01/16/regexps.html](http://www.perl.com/pub/2004/01/16/regexps.html)
)

And well, honestly, more often than not i found that "hard to read" perl code
would be just as hard to read if it was written in lisp, python, c, or any
other language you care to name; since more often than not that code is hard
to read due to variables and functions having names that don't help the reader
understand what they're holding or doing, and long blocks of code not having
been encapsulated into functions well enough.

And lastly, to tie in to dang's point: Having "used Perl a lot" does not mean
much if you have not also "learned Perl a lot". I've known, in the extreme, a
Perl dev of 10 years experience, who had started out as a C dev, and yet did
not use or trust Perl hashes, instead opting to write his own data structure
encoding format. Have you ever read chromatic's Modern Perl?

