Raku

Raku is the new name for Perl 6. The renaming decision was made official on 14 Oct 2019 after years and years of arguing and about a month of constructively working on the proposal. For me, Raku is Perl, and I would have very much liked to see Pumpkin Perl and Raku Perl go into effect instead, but it is Raku now. But this is not the place to recount this story.

Raku, in the spirit of Perl, takes the malleability a few steps further, among other things by providing an interface to change the Raku compiler at runtime via mixins, creating so-called “slangs” or sublanguages, which are intertwined with standard Raku. But unlike Perl 5, Raku is built on a versatile object system. Operators set the context for their evaluation as in Perl but, using multi-dispatch, classes drive the evaluation and set the meaning of an operator. The Raku object model also enables laziness, and “self-clocking” code. A prime strength of the large standard library is its composability. Oftentimes I’m amazed at how well the classes and methods compose and lend themselves to concisely expressing everyday data processing tasks. What got me hooked on Raku, formerly known as Perl 6, is the feeling that the language is a product of many years of experience with programming, pragmatic yet abstract thinking, the necessary shot of computer science, and incredible love, dedication, patience, sobriety and hybris on the side of the language designers and implementors.

In one of the videos linked below, Larry Wall says “Perl 6 is the last programming language you’ll ever wanna use”. That’s almost true. I think it makes many languages more painful to use, but I still like Perl 5 a lot.

In the Raku community I’m known as tobs, my nick on IRC. That’s a joke nickname given to me by my former classmates with the understanding that, among the many ways to form a nickname from my first name, this one sounds especially silly. Maybe that’s the reason it was still available on a number of platforms.

I develop and maintain a hopefully growing number of Raku modules:

OEIS
an interface to the On-Line Encyclopedia of Integer Sequences®.
SAT, SAT::Solver::MiniSAT, SAT::Counter::DSHARP, SAT::Enumerator::Toda
SAT solver interfaces.
Propositional
a propositional calculus package.
Unicode::Time
for approximating datetimes with unicode clock characters.

Here are some talks and presentations of Raku, formerly known as Perl 6, that I especially like:

Curtis “Ovid” Poe: Perl 6 Why People Are So Excited
An introduction for beginners. There is bad audio with nothing important happening during the first three minutes.
Damian Conway: The Shoulders Of Giants: 400 Years Of Perl 6
About beginner topics, with Quantum computing at the end, bad audio is over at 10m38s.
Jonathan Worthington: Parallelism, Concurrency, and Asynchrony in Perl 6
Insights into the design of Perl 6’s concurrency features.
Larry Wall: Perl 6
A history- and design-oriented talk.
Larry Wall: It’s the End of the World as We Know It, and I Feel Fine
Briefer talk about design, followed by a showcase of cooler things in Perl 6. My highest recommendation despite bad audio overall.

If you feel like I’m missing something, please tell me via email.