Showing posts with label LAMP. Show all posts
Showing posts with label LAMP. Show all posts

Monday, 20 November 2006

LAMP++?

Writing the previous post raised a number of thoughts while traversing the London Underground, which will keep me going in blog entries for a while, I think.

So... LAMP.

Linux, Apache, MySQL, and Perl (or PHP, but I kind of promised myself this blog would be mostly PHP-free. :) ). As characterised by O'Reilly's excellent OnLAMP section, in fact, which is recommended reading, and a champion of the cause.

Is this Enterprise Perl?

Interesting question. I think the answer is, sort of: it's its skeleton. It's the bones on which you can build an enterprise-level application in Perl. (Which reminds me - we still need to define exactly what we mean by that troublesome term 'enterprise', don't we?) But it doesn't actually define anything. A single CGI that uses the HTML generation methods and talks raw DBI to MySQL is as much LAMP as a fully OO MVC-style web application written in TT2 and DBIx::Class.

It clearly can work, though: Yahoo's internal CMS is written in Perl, so's IMDB, Amazon's publishing system, the entirety of CricInfo (trust me, I designed it - it's a TT2 fronted MVC web app, or at least it was when I left)... all these can be pointed at as examples of LAMP-done-well, and cover four of the biggest sites on the web (even CricInfo - a quarter of a billion page views a month on a single sport site). OK, so the 'L' occasionally stands for FreeBSD, but we'll draw a view over that - the spirit of the 'L' is 'Unix or Unix-alike on x86 commodity hardware', and we can let Yahoo off, just as we can excuse the folks who use Postgres. But there's really more to these than LAMP, or at least, we hope there is.

What we're looking at, from an enterprise point of view, is something I'm going to call LAMP++. I'm sure, with a bit of work, we might be able to come up with a better acronym, but by analogy with C++, LAMP++ is actually not that far off the mark. The '++' means we're talking adding, or rather mandating, an OO approach to Perl (including an OO DBI abstraction layer), some form of templating, be it TT2, Mason or whatever, and some form of Apache-embedded Perl interpreter (mod_perl). We're looking for Perl programmers, not scripters, and we'd probably really like test-driven development, too. We're taking as our bible not the Llama and the Camel, but Perl Best Practices and Intermediate Perl, and to guide our philosophy we keep handy Perl Testing: A Developer's Notebook, and Perl Design Patterns.

LAMP++. It's got legs, I reckon. More anon.

jobs.perl.org

So, here I am, with an uncomfortable sense of 'are my skills becoming obsolete?'.

$CurrentEmployer is, as I noted, predominantly a Java shop, and I have, in the past week, rolled out what's going to be the last piece of Perl development they need (modulo some differences of opinion between RedHat and Debian's default module setups, which means I'll be doing it all again today!). Which leaves me, pretty much, with the choices of: learn Java, or find a new job. Perl advocates the world over are no doubt cheering the fact that I made the second of those two choices. Let's face it, there wouldn't be much point in this blog otherwise: you'd be reading something called "A Perl Programmer's first steps in Java" instead.

Why? Well - two reasons, really.

First off, with what amounts to entry level Java skills plus (fortunately) a sound grasp of programming in and of itself, I'd be very much a junior developer, and while the idea of getting my teeth into a new language has a certain appeal, coming in well down the ladder, and spending most of my evenings drowning in J2EE acronym hell and a pile of "Learn $JavaThing in 30 Days" textbooks isn't my idea of fun.

And secondly? It's not Perl. For all this may not be clear in some of the previous postings, I love Perl, for its power and simplicity, for the fact that it /is/ a Swiss Army chainsaw, that I can do everything, from a one-liner to fix Apache2 module paths when porting from Debian to RedHat, to a complete CMS or banner ad serving engine, in the same language. And quite frankly? Java leaves me cold.

And it's jobs.perl.org to the rescue!

I'll admit, I was pleasantly surprised. There's a raft of Perl jobs up at the moment within commuting distance of where I live, mostly in London, and a surprising number that pay noticeably better than I'm currently earning (and are a good half an hour closer to home). In the context of this blog, they make interesting reading. A surprisingly large number mention 'OO Perl' as a requirement, and an equally, and almost correspondingly large, number mention LAMP, either by name or by implication.

By contrast, it's amusing searching the likes of Jobserve or Jobsite for jobs that mention Perl - what tends to come up is a lot of Java, .NET or sysadmin jobs with a little 'oh, and Perl scripting would be handy' coda tacked on the end. In fact, /all/ the jobs I've applied for this past week have come from jobs.perl.org.

So, gentle reader, you're probably wondering where that leaves our hero? Actually, not too badly off. But, more of that in a later post.