Pretty much anyone involved with the Perl community knows that we have an image problem. You don’t have to look far these days to find someone dismissing Perl as obsolete. For instance, this InfoQ interview with Tim Bray (Sun’s Director of Web Technologies) from a couple of months ago. In it, Bray says:
I moved from Perl to Ruby, because Ruby is more modern
It wasn’t always this way, of course. In the early boom days of the web (around ’96-’01), Perl was king. Exactly how this fall from grace occurred is a matter of some debate. Dave Sherohman recently said it wasn’t because of the “line noise” Perl is infamous for, but for poor support for casual users, allowing PHP to fill Perl’s web niche. I think it was also to do with the cowboy practices that the early Web hysteria brought on. Everyone was in a rush to become the next eBay or Amazon, and produced a lot of awful code in the process. The fact that it happened to be in Perl was not necessarily Perl’s fault.
Regardless of how this happened, we are where we are. The question now is: can we ever reverse the trend? We’re certainly trying harder than ever, but will our attempts be in vein? You would think technical people would be rationale and pragmatic, but it seems all humans are emotional and stubborn at the best of times. I’ve encountered good quality programmers who hate Perl with a passion (including ones that have actually done a reasonable amount of Perl themselves). Will these people ever be turned around?
Or perhaps the real question is: does it matter? Do we really care that some people will never like Perl, no matter how good it is? Why worry about something we can never change? After all, surely the truly smart people will recognise when something is genuinely good, and especially when it’s significantly better than anything else available. Maybe that’s Moose. Maybe that’s Perl 6 and Parrot. So long as enough people (outside the community) know about these things, sooner or later, reputation will stop mattering.
So can Perl ever regain its reputation? Probably, but lets stop worrying about it.
I’ve tried a lot of different ways of writing testing frameworks for database interaction, but have finally settled on an approach that seems to work pretty well. I figured I’d describe it here in case it’s of use to anyone. Pretty much every project I’ve worked on in the last few years has used an ORM; for Perl I use DBIx::Class, and in Java, Hibernate. This has led me down a particular path in terms of an approach to testing, but it could probably work without an ORM, so long as you have a well-encapsulated data access layer. But for the purposes of this post, I’ll use DBIx::Class code as an example.
chromatic’s most recent post on roles at his Modern Perl Books blog compares Roles to duck typing. (If you haven’t read his ongoing series of posts on roles yet, it’s a great way to get up to speed with some of the theory behind roles, in reasonably easy-to-understand terms). Given that duck typing is a favoured technique of Python and Ruby developers, it’s not too surprising that his post got a response, which seems to be fairly skeptical of roles. Read more…
As I said in my previous post, roles are an important advancement in the world of OO. Until now, I’ve mainly been using them because Ovid told me to (not personally, but through his numerous posts on his use.perl journal). When someone like Ovid goes on about something like this as much as he has, I usually find it a good idea to pay attention.
So I’d been using roles for a few weeks (and Moose only a bit longer), but it wasn’t until I had to do a big re-factor of the combat system in my browser-based role-playing game – Kingdoms – that something “clicked” in my head (and not in a bad way). The reason for the re-factor was that I wanted to add Party vs. Party combat. Before that point, parties had only been able to fight against groups of creatures. The only variation was that sometimes combat occurred in the wilderness, sometimes in a dungeon. Read more…
I’ve taken a fairly passive role in the Perl community over the years. I read a fair bit about what’s going on (on Perl Monks, or various blogs) but – other than the occasional post – I haven’t contributed a lot in terms of discussion or code. So it’s been interesting watching the developments in the community in recent times, especially in the last 12 months or so. Things are changing.
So I guess I’m Yet Another Recruit for the Iron Man Challenge. The prizes (extravagant as they are) aren’t really what tempted me… it was more the about the original “call to arms” from Matt S. Trout (NSFW if you don’t like profanity).
I’ve been meaning to setup a blog for sometime (years I guess)… I can write reasonably well, and do have a few thoughts on Perl and other things (plus discoveries, etc that may be useful to people). On top of that, I’d like to participate a bit more in the Perl community. I do read a lot of blogs, but I think output is just as important as input. So it’s good to have finally got my A into G!
Anyway, I already have a bunch of ideas about things to blog about, so look for those soon