I’ve recently seen an increasing amount of discussion about the LAMP stack (Linux+Apache+MySQL+PHP/Python/Perl) — specifically, as an alternative to the traditional Java-based development stack (app server+enterprise DB+J2EE). I’n a technical landscape that tends to be polarized around Microsoft vs. Java, LAMP is quietly gobbling up a lot of ground.Open source “hit the radar” with Linux a few years ago. Apache has been the dominant web server platform since the mid ’90’s. The rest of the stack (MySQL, PHP, Python, Perl) has been seen as a nice set of tools for hobbyists and prototype work, but wasn’t generally regarded as a serious toolkit for production development.
People are looking around and seeing that’s no longer true.
I’ve been using PHP since I discovered PostNuke (see Whaddya got under the hood?) a few years ago. At the time, I admired the ease with which static web content could be mixed with scripted content. It had the same appeal for me for web development that Visual Basic always had for Windows development — you could get started in no time flat, and although popular wisdom held that you wouldn’t want to use this tool for anything serious, I could never seem to quite find that point where I completely ran out of gas.
Over time, all these tools have matured, to the point where it’s pretty foolish to dismiss any of the LAMP tools as amateur-grade. There simply aren’t too many critcal capabilities you can get in “enterprise” software development tools that you can’t find in the LAMP stack, too.
The two shocking realizations that (1) these tools are for real, and (2) they’re wresting developer mindshare away from Java and/or Microsoft stacks are hitting some people pretty hard. In the last week or so, I saw an article on LooselyCoupled.com entitled J2EE: No longer required. This article was mildly interesting, but the real eye-opener for me was when a link got posted on Slashdot and generated a literal firestorm of resistance from the Java community there. Since then, I’ve seen some additional aftershocks (What’s so special about PHP?) that indicate that the rumbling hasn’t stopped.
It’s been pretty telling for me to watch the reaction of some of the J2EE community to these discussions. Objectively, I wouldn’t have expected this much uproar. After all, most of the LAMP stack is trying to accomplish goals that are compatible with Java’s: platform independence and developer productivity. LAMP is compatible enough with Java that there’s a vendor called SpikeSource that’s putting together a certified development platform that they call a LAMP and LAMJ stack.
At the end of the day, I’ve got a lot of respect for the LAMP stack and LAMP developers, because my experience is that these people tend to be a whole lot more focused on acheiving an objective through the most efficient means possible rather than getting wrapped up in a holy war. As a development manager, that’s what I like to hear.