January 2017 marked the start of the third year of the Perl CPAN Pull Request Challenge, it is also my third year of participation.
This year I have managed to rope in my work colleagues in my $dayjob, where I am fortunate enough to work in a team for Perl developers. So in January I worked on not one, but two modules. To be fair mainly I did nothing for 3 weeks and then tried at the last minute to get some commits onto github.
The $dayjob module we did after work one evening with Pizza. It was really rewarding to work together and see what parts of the module appealed to people. The module I was allocated individually was a tough one but not only did I make the pull request; the author accepted it too.
The Pull Request challenge is something I joined to achieve two things. One, to participate in the Perl community and two, to improve as a developer by exploring other peoples open source code. I am really hoping my team gets as much from it as I have over the past couple of years.
It is not always easy; the module you are randomly allocated is (to date) never been something I had intimate knowledge of beforehand. Reading other peoples code is fascinating; I have learnt something from every module I have looked at. I pick up ideas; understand approaches; get confused and hopefully end up knowing more at the end of each month.
It is particularly important at the moment as in my $dayjob actual development time can be limited as I do a lot of “team” stuff. I love being part of building a software team; but I love writing software too (and specifically writing Perl). So working on the pull request challenges helps me keep myself moving forward.
Perl being the language that it is; you do need to keep working at it. The flexibility and expressiveness is wonderful to work within. However, it is easy to write gibberish if you do not apply rigour to your development. The reputation Perl has is not 100% undeserved; mainly because like PHP, it is very easy to get started… even if you don’t quite know what you are doing. Novice and journeyman developers can really make a mess… I have been looking at a side project I wrote in 2003… yep I made a mess too!
But equally, and I would argue it far outweighs the negatives; Perl is mature and expressive. You can write code that is prose (as Uncle Bob calls it). We have things like UNLESS. We have prefix and postfix IF. Where some languages have limited ways of phrasing your logic; Perl gives you the ability to express yourself in the way that feels most natural.
This expressiveness means you can write beautiful code… but just like all language you can write horrible sentences.
Anyway… I’m looking forward to February and reading and writing more code. As part of my digital cleanup I am looking at old projects; so in February I plan on revising some old Perl and PHP projects. I have also some NodeJS repositories to update.
I will also be reading “Perl 6 at a glance” and may in February or March start a Perl 6 web side project.