Recently there was a thread online asking who was using the new Perl6 Programming Language in production; so I thought I would share a few thoughts as I do actually use Perl6 on a live, in production website: MyJudo.net.
The site is a online training tracker for the Olympic Sport of Judo. Imagine it as a Strava or FitBit for Judo.
I, outside of Perl, am a Judo coach; so I started the project for my own desire to record what I teach in the sessions I teach.
I started the site as an excuse to learn Perl6 more deeply than the “Hello World” type experiments I had done previously. I do not consider myself a Perl6 developer (yet), I think I write Perl6 with a strong Perl5 accent. Meaning I do tend to write it in much the same way I write my Perl5 and occasionally use more Perl6 syntax.
This on the whole is a workable way of developing; with only the odd occasion where Perl6 really object to my style. It’s flexible that way. I have to say that knowing Perl5 may well be a impediment not a advantage to learning Perl6. Although they are related languages Perl6 is not an update of Perl5; it is a new language.
Perl6 is a multi-faceted beast; it combines programming styles and features from it’s long development cycle; and that makes it both amazing and hard to learn.
MyJudo is built on the Bailador web framework for the Perl6 programming language. Bailador is a route based framework; similar to Dancer in Perl5. It works pretty well and I have no complaints; except maybe that like many things in a young language like Perl6 there are some missing parts. It can be frustrating sometimes to work with Perl6. That said one of the rewards is the community is small and often you end up in direct contact with key developers. And of course it’s new and it’s nice to be on the cutting edge sometimes!
I have found Perl6 and Bailador easy to be productive in as a developer working on a “side project”. It is simple and the error messages when I mess up are helpful and generally clear.
The supporting modules from modules.perl6.org are… limited. There simply is not the depth of Perl5’s CPAN or NodeJS’ NPM.
I am maintaining MyJudo and growing the features slowly. I admit I may also reimplement it in Elixir as I’d like to learn that language. My gut says it is easier for me to write Perl6/Bailador rather than say NodeJS/Express. Perl5/Dancer2 would I am sure be fastest for me; but I want to explore new things and MyJudo has and is allowing me to do that with Perl6.