| Well, Larry Wall's latest project was called "Perl 6" but has
been renamed "Raku"-- in belated recognition that it really
is a new language, and Perl is going to continue being Perl. The main reason to learn Raku at present is simply that it's
profoundly different from most other things out there-- there's
no particular "killer app" that's emerged for it, but it's
unusual enough that this might happen yet (no one expected Perl
would be critical for "Web 1.0" and the Human Genome Project...). Some Raku features: (1) it's numeric types include true rational numbers, so
there's less chance of being tripped up by floating point
approximations (e.g. 2/3 is really 2/3, and if you multiply
by 3 later you get precisely 2). It also does big integers by
default: you're less likely to have overflow problems. (2) Raku's regular expressions have been redesigned from scratch,
and it ships with expanded capabilities to compose them into larger
structures called "grammars": Raku is a uniquely powerful tool for
writing special-purpose parsers, ala domain-specific languages.
(Note: this is how Raku parses itself-- it's not implemented in
the usual lex and yacc style.) (3) Extremly convenient features for handling CAP
(concurrency, asynchrony, parallelism), possibly the easiest
to use of any language. As for Perl (meaning the original, Perl 5), it's vastly
superior to traditional bash scripting because all the
components were brought into one process where they could be
made more consistent and talk to each other easily. How Perl compares to Python is a little difficult for me to
answer: I prefer Perl, but I could be biased on this one, and
there's no question Python has quite a bit of momentum at
present in a number of areas. |
I am surprised you didn't mention Perl 11 which is try to mash Perl 5 and 6/Raku together. Is that still happening? Or do I have it wrong?
"How Perl compares to Python": The first thing I tell Perl programmers who are starting to learn Python: There are Perl-style references in Python. (If you are not familiar with Perl: These are a roughly pointers, and can be 'undefined' / null.) In short: You cannot create a reference to a scalar in Python. Perl hackers then scratch their head and ask, "Well then, how do I build XYZ data structure without...?" The easy workaround is a single element tuple or list. "Aha!" Otherwise, Perl programmers can adapt very quickly to Python.