“Should I be using LAMP?”
“But .Net is easier for me and I like Visual Studio and SQL Server! I already know it. Plus we already paid for the licenses.”
Me: Then why did you ask?
“Because everything I read about LAMP makes me think I should be developing our app on Linux. All the companies like YouTube, Flickr, Twitter, and, well…all those cool Web 2.0 startup companies are developing on open source. Maybe I should switch.”
Me: Are you a cool Web 2.0 startup company?
“Well, no, we sell lawn mowers.”
I must have this conversation at least twice a week. Everything’s the same except for the lawn mower part. And oftentimes it’s the reverse; someone wondering whether they should switch over (or back) to Windows.
My answer is simple. You should be using the technology that you’re comfortable with. Once you make a choice you should stick with it. And you shouldn’t switch technology platforms just because all the cool kids are doing it.
Now, having said all that, you still have to make a choice. My advice is to evaluate the strengths and weaknesses of your team and the nature of your application then choose the platform and never look back.
Here are a few considerations to help evaluate your platform decision:
Expertise with the platform
Existing code to build upon
Rank your priorities and build a quick matrix to help you quantify how important these considerations are. Add your own elements to the matrix and tally it up, and voila! You’ve chosen your platform.
Most of the time your gut works just as well.
Rackspace uses Python and PHP for much of its own core systems. But we use Java for our customer portal, Microsoft SQL for data warehousing, and Oracle for our financials. My belief is that we’ve used the right technology for the job given the skills we had on hand and the budget we had to work with. Over the years, we’ve heard the argument, and sometimes made it ourselves, that if only we had chosen a different platform, we’d have no shortage of developers and we could shorten our development time by months. Well, don’t believe it. I’ve seen plenty of our customers succeed and many fail and it’s never because of their choice of technology.
And then there’s the argument that only open source scales. Well, myspace, Microsoft.com, and the NASDAQ all run on Windows and they’re scaling just fine. The platform is irrelevant to scaling anyway. The real key to scaling is the overall application architecture and not in the building blocks.
But invariably, the grass always seems greener on the other side. I tend to think the reality is more like the cynical version of that aphorism: “The grass is brown on both sides of the fence.” No matter what you choose, you’re going to eventually have headaches and possibly nightmares, but you’re no worse off because of your choice of technology stack.