Day 2: Perl is dead. Long live Perl and Raku.

Perl is dead’, is a meme that’s just plain wrong. Perl isn’t dead. It’s just dead to some programmers. Complicated regexes? Sigils? There’s more than one way to do it (TMTOWTDI)? Sometimes when programmers encounter Perl in the wild they react with fear. “WTF!?”, they cry! But fear needn’t be a Perl killer. If you take the time to see past Perl’s imperfections and walk the learning curve, there are rich rewards: Perl is an imperfect but pragmatic and expressive language that for 30+ years has helped programmers get the job done.

When Larry Wall designed Raku, with the help of the Perl community, he fixed most of Perl’s imperfections and doubled down on Perl’s DNA. Perl values pragmatism, expressivity, and whipupitude and Raku does too! Why stop at sigils ($@%) when you can have twice the fun with twigils ($!, %!, @! etc)?

For some programmers, however, the mere sight of a twigil can induce fear. Like Perl, Raku’s expressive power is a double-edged sword – potentially stopping other programmers in their tracks. A Raku programmer’s, “DWIM” (do what I mean) can be another programmer’s, “WAT!?”

Fear-free code that flows

We write programs for two audiences: humans and the computer. It’s the humans that should come first. If I can’t understand my own code in a week’s time, what hope do my colleagues have? Fortunately we can help ourselves, and each other, to have a smooth ride up the Raku learning curve.

Learning Raku is never boring but when did you last encounter a bump while learning Raku? That’s a chance for you to help yourself and others. You could leave an empathic comment in your code, contribute some documentation, write a blog post, give a talk, ask and answer a question on StackOverflow etc.

The joy of programming is finding flow for ourselves and each other while getting things done. No Raku-riffing-rockstars required.

Surfing the learning curve

Maybe you haven’t started learning Raku yet? Now is the perfect time to add Raku to your toolbox. Here are some of the learning resources I’ve found useful and I hope you do too.

Firstly, there is the pithy and concise introduction to Raku that includes instructions on how to install Raku. The Raku interpreter itself is very helpful. If your Raku program contains errors Raku often suggests ways to fix them.

For programmers coming from other language(s), RosettaCode showcases coding solutions in different languages side-by-side. Prepare to be pleasantly surprised by the expressive power of Raku’s operators. Raku’s expressivity typically results in less lines of code (LLOC).

An idea for your first Raku program is to translate a progam you know well from a different language. Here are some helpful guides for translating from other languages to Raku: Perl, Python, Ruby, Haskell and Javascript.

There’s a growing list of books on Raku and a flowchart for choosing one. Here’s a selection:

Searching for Raku-related problems will often point to the official documentation at docs.raku.org or Raku answers on StackOverflow.

When you want to learn more about a specific sub-topic or dive into the deeper design philosophy of Raku check out Jonathan Worthington’s clear presentations and explanations.

Finally if you’re stuck on something, or just want to share in the –Ofun of learning Raku the #raku IRC channel on freenode is friendly and welcoming.

Both Perl and Raku are useful tools in any programmer’s toolbox: no fear needed, just remember to help the code flow!

Long live Perl and Raku.

Happy Christmas!

9 thoughts on “Day 2: Perl is dead. Long live Perl and Raku.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: