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
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