Web 2.0 .NET vs. LAMP Part 2: Development Costs
Quick Recap: In my last post I talked about how the choice between LAMP and .NET for Web 2.0 application development has become a matter of preference not necessity. But what about costs? Isn’t Microsoft’s .NET stack more expensive than the free and open technologies that make up LAMP? After all it costs a web master nothing to download and install Linux, Apache, MySQL, and Perl where as Microsoft software actually costs something. If only the cost of development stopped with the check you write to Microsoft! By far your most expensive resource when developing the next killer web portal isn’t software, hardware, or salaries—it’s opportunity costs that will kill you before your killer app makes a killing.
Say you decide to use LAMP to bring your Web 2.0 app to life. You hire a couple of open source programmers and tell them what you are looking to do. They may do it all with custom code written just for you but it’s more likely that they take advantage of a framework like CakePHP or Maypole or Django. (The names are funny but these open source frameworks save you thousands of hours of coding.) The thing to worry about here is not just getting the project done but rather what happens one or two years down the road.
Most application software projects fail (if you are lucky). So worrying about a future that statistically will never happen isn’t as important for most enterprises as just getting the product done. LAMP and .NET are both fine for getting a Web 2.0 application to market quickly. If your idea does catch on, it ends up reaching over 40% of the people online (like ADSDAQ) and the opportunity costs of your technology decisions start to kick in.
Web 2.0 technology opportunity costs include how much it will cost to maintain and operate your application, how much it will cost to scale and enhance your application, and how quickly will you be able to respond to changes in the market. Theoretically open source technologies like LAMP should be very low cost and very responsive over the long term. But my experience has been mixed.
Once upon a time (pre-ContextWeb) I got excited about an open source framework for Java called Struts. It was well designed and promised to save my developers hundreds of hours. I had a whole team in India implement a mission critical application using Struts and everything was good—until it came time to revise the application a year later. We had to rewrite it! The Struts framework had been re-written! There was a huge conceptual design change from Struts 1.1 to Struts 1.3.5 that it was if we had not used a re-useable framework at all. My team could not keep up with the rapid rate of unplanned change in open source which continues to this day!
At least with Microsoft .NET you have product managers in charge - and a roadmap. You have someone you can yell at when they make a bad decision and a company that isn’t likely to grow bored and abandon the framework and leaving you back at square one. Plus, it’s tough to beat a company with a “head geek” who’s willing to do this.
John Pavley is the Chief Technical Officer at ContextWeb.
Read the series:
-- John Pavley
Sphere It
January 8th, 2008 at 2:56 am
John has done a great job describing the reality and trade-offs involved in software development choices and costs, especially the hidden costs, almost like derived requirements which do not show up at first glance or initial evalution, some of these valuable insights are learned at the price of hard earned expereince.
January 24th, 2008 at 1:54 pm
[…] at the February 19 Web2NewYork networking party. Pavley has posted some interesting thoughts on LAMP vs .NET on the ContextWeb […]
March 16th, 2008 at 1:49 am
The article never really compares LAMP to .Net in terms of cost. The normal dodge and talk about maintainability costs was pulled when it became obvious that the free LAMP stack is cheaper. But the maintainability comparison is made against Java/Struts instead of LAMP.
There should be information on how many times the various PHP frameworks have left their users stranded. We have one example of ASP developers left stranded when ASP.NET came about. I also didn’t particularly care for the transition from .Net 1.1 to 2.0. I have not found such problems when using LAMP and have had more than enough opportunity to migrate any code that may be affected by a future update. In fact thanks to the good documentation I can write code now thats safe for updates years ahead of time.
In a nutshell there are no more hidden future costs with LAMP than there are with an MS platform but the start up cost for LAMP is cheaper.
April 7th, 2008 at 6:14 pm
Phil, I find myself agreeing with your point LAMP does not have any more “hidden future costs” than .NET. It’s the opposite that I was arguing: .NET and LAMP have the same potential for hidden future costs. And with .NET you at least get a chance to peak at the Microsoft roadmap. Which is subject to change but sometimes doesn’t change (Sigh!). I don’t agree that .NET is more expensive than LAMP to start up. The Express editions of .NET mostly address that concern.
May 1st, 2008 at 10:10 am
Also Microsoft tries really hard to be backwardly compatible because it has paying customers on the platform already. With Open Source the community is not inhibited by the existing implementations and usually is driven by the benefits of the new design. Depending on your point of view it is a good thing or a bad thing.