Perl 6 is Really Rolling Now

This weekend I made my first contribution to an open source project, the Perl6 MoarVM.  It was a very positive experience.  I hopped on the IRC #perl6 channel and started asking around, following Perl 6 tutorials, but I found a bug almost immediately and submitted a bug report.  It was fixed within minutes!

I found an easy ticket to fix on the MoarVM, it was a simple class rename.  I checked out a branch in git, renamed it across all the files with sed, and fixed a compiler warning.  With some more git gymnastics I submitted my first pull request.  There was also bug reports from 2014 I noticed were fixed in the 2017.01 build of Rakudo.

While reading the Perl 6 documentation and listening to presentations, I realized that Perl 6 is a remarkably well designed language.  I feel the same desire to learn about it as I did for Lisp and Haskell.  It reminds me of something Bjarne Stroustrop once said, that C++11 feels like a new language, and the pieces just fit together better than before.  I feel the same way about the jump from Perl 5 to 6.

Although it’s been in development for a very long time, it’s only been little over a year since version 1 of Rakudo was released.  A programming language is more than a laundry list of features.  Larry Wall understands that better than most anyone, so I’m optimistic about Perl 6.

Update 2/11/17

Merged! https://github.com/MoarVM/MoarVM/pull/532

Honestly, I no idea this TimToady guy I’ve been messaging this whole time was Larry Wall himself.

2 thoughts on “Perl 6 is Really Rolling Now

Don’t you dislike how in Perl you can write the same program so many different ways and they are all correct? Now don’t get me wrong most languages you can do that to some degree, but not to the degree Perl does it. I am not an expert in the language by any means, but this seems it would cause a longevity and scalability problem for all Perl programs. Basically the longer a program has to be maintained for and the larger the program is the more important readability and simplicity is for that program. Being able to do the same thing many different ways is great for flexibility, but I imagine its at the cost of readability and simplicity. That’s why I have never really bothered to learn the language myself.

I think being able to do things in crazy ways definitely contributed to Perl’s reputation of being executable linenoise. Hopefully with Perl 6’s improved regexs this won’t be the case next time. I can see how the Zen of python’s one-way-to-do-it philosophy makes similar code look similar and that can be good, but it makes some things harder than they need to be. Consider initializing an array in Python:

symbols = [‘+’, ‘-‘, ‘*’, ‘/’]

You can use quotes and spaces in Perl too, but I find whitespace much simpler:

@symbols = qw(+ – * /)

Leave a Reply

Your email address will not be published. Required fields are marked *