Telephone +44(0)1524 64544
Email: info@shadowcat.co.uk

Ican haz Purl...Happy!

Spaghetti Westerns will never be scripted this way again!

Tue May 26 10:58:11 2009

Digg! submit to reddit Delicious RSS Feed Readers

take the people who are under the impression that Perl is a quick glue where Tim Toady rules in ignorance upon a throne of loose grammatical form by the hand and take them through the streets of Modern Perl

Programming Language with the Happiest Users

Image of cat for article

I was trolling through the blogs on Planet Perl Ironman and pulled the above link to a quite interesting article on the positive Tweets about programming languages and extrapolating the hapiness of the programmmers who use different languages. I am not going to discuss the main article here, I recommend people search it out for themselves.

What I was going to discuss was the comments that were left by the varous people who read the article. There was a general surprise at the fact that Perl was at the top. Some users indicated that the article was probably invalidated because of either the inclusiveness, or non-inclusiveness, of certain languages - others attempted to invalidate the statistical model, or to cast doubt on the collection methods (which seems to me to be invalid as the model was applied accurately/inacurrately to all the languages shown so they all benifitted/suffered from the same process, which is still parity) - others just bitched about the fact that any language could be better/worse than their flavour of the month.

But what distressed me the most was the people, either positively or negatively, who described Perl as just a glue, a patch-up language suited seemingly just for DIY. There were too many who saw Perl as just Tim Toady (TIMTOWTDI). Worse, it was often described fondly, or despised, as noodley pasta.

Now I am just the Adminion around here at Shadowcat Barracks, so a lot of the deeper levels of programming are normally lost in the realms of the ether to me, but the notion that Perl is always messy, always full of quick and easy code, and even worse is sphagetti almost offends me. Why? Easy. Use Strict and Be Consistent. That's it really, that helps us to produce Perl code that is a little less of a glue and more like a scaffold (which is what it actually is). Perl is a language you can hang things onto and build up from. That is a major feature to my mind. It is adaptable and allows for variation. But that doesn't mean it has to be messy, quick, dirty or cheap.

I would like to take the people who are under the impression that Perl is a quick glue where Tim Toady rules in ignorance upon a throne of loose grammatical form by the hand and take them through the streets of Modern Perl, I will show them something that might just blow their mind.

Modern Perl is Enlightened Perl. It is a Perl ruled by Best Practices. It is a Perl that is devoted to the knowledge that there may-be-more-than-one-way-to-do-it but that doesn't mean you -SHOULD- do it anyway you want to, and that Consistency is Not a Bad Thing.

Many popular Perl libraries and projects use strong principles to guide their development. These include the idea of factoring out hacks and edge-case variables that lead to conceptual cul-de-sacs and replacing them with leaner code that is easier to integrate and implement. Perl has CPAN, that alone and the strong principles it is built on already elevate the language into the stratosphere of good practice.

And on a discursive note...

It is a true strength of Perl that you can do just about anything you want to with it. It is also true that you can get away with a lot of insanity even if you -use strict-. But this is not sphagetti, or a noodley-goodness in a FSM devotional sense, it is dialect, colloqualism, cliche, idiom, it is Language and it Evolves.

Perl is a fluid and liguistically rich programming language. It gives it strength and it enables a wide range of expression. But languages that are rich enough to do that will for every Shakespeare have a hundred Jeffrey Archers, a million txtrs and sh1t3s who l33t.

If anyone has feedback (and until we have a commenting system) please don't hesitate to email me at: m.keating [at] shadowcat.co.uk, if your comments are useful, fun, or just plain interest to me, or if I think will be useful to others, then I will add them to the end of this post, let me know how you would like to be named (anon, nick etc.).


Comments

Developers are by nature very possessive of their own favorite language and seem to rant and rave about other programming languages like they are the plague or some other awful monstrous device.

You mentioned the responses about Perl being negative, well if you look closely you'll also see very similar rants about other languages, e.g. even php gets a good knock-up.

Could it be that the Perl Community is reacting overly sensitive to criticism because of some innate feeling of insecurity? We started out the best and now have to deal with being the underdog.

I've been an enthusiastic software developer most of my life and have learned various programming languages. My favorites by far are good old C and of course Perl. I don't care what others think, because I have alot of fun and that's all that counts, isn't it?

You know, I wouldn't be surprised if within the year Perl goes through some kind of renaissance of increased popularity, what with Perl6 and those interesting initiatives leading up to it like Moose, DBIx::Class and Catalyst. I wouldn't be surprised if some magical transformation takes place now that lighthttd and mod_perlite are coming of age. Maybe we replace LAMP with this other new-fangled underdog, and all of a sudden Perl is the most famous and popular programming language around. And then what have we we achieved? Are we happier? Is the Perl Community saved from the next ice age?

Well, the answer is that proof comes with just plodding on and having fun with what you are doing, proving by example what is possible. It doesn't matter who's the best or which language makes the happiest tweets on twitter. What really matters is that fantastic CPAN tools are popping up by the dozen, allowing us to extend our creativity beyond expectation, creating wonderful state-of-the-art architectures like Catalyst.

I have nothing to complain about. I like it the way it is. I never get enough of Perl and learn new things about it all the time. There's much to do so let's shape up and get the job done.

Kiffin Gish, The Netherlands


Mark Keating is: Managing Director of Shadowcat Systems Limited
Director and Secretary of Enlightened Perl Organisation
Co-Founder/Co-Leader of North-West England Perl Mongers
Work Blog: Mark Keating on Shadowcat
Public Blog: Mark Keating on Vox
LinkedIn Profile: Mark Keating on LinkedIn
My Homepage: Mark Keating's Personal site