This is not a post about how Linux is better than Windows for developing websites or vice versa. It is a post about how one of the most commonly used arguments against developing on a Windows based web server with IIS and a language like ASP or .NET is no longer valid. That is, that it’s too expensive because of licensing or having to buy software.
Historically if you want to develop on a Windows server you had to get a dedicated server, buy Windows server software, buy MS SQL Server, and then deal with complicated licensing fees. Or you had to work with someone else willing to deal with all of that. This could easily cost several thousand dollars just to get set up, not to mention any ongoing license fees, which I’ve never been able to figure out myself and therefore can’t speak to regarding the costs.
On the other hand, you could go get a virtual private Linux server account from one of the thousands of hosting companies around for a few bucks per month and develop full fledge web applications using PHP and MySQL and pay nothing but the monthly hosting fee. No worries about extra costs, no worries about licensing, no software to buy, etc.
This ease of use and low cost with Linux fueled explosive growth of Linux as the operating system of choice for small businesses (as well as for plenty of large ones) when it came to web development. However, with Windows Server 2003 it became possible for hosting companies to create low-cost virtual server accounts that include MS SQL and support for developing in .NET.
Why Microsoft didn’t do this year ago I don’t know, but in many ways this has leveled the playing field when it comes to choosing an operating system for web development. There is still a price difference between virtual Windows hosting and virtual Linux hosting but it is minimal (for example, $6/month for Linux vs. $8/month for Windows, big deal). Before you take issue with me bear in mind I didn’t say “all ways” I said “many ways.” For some this change will have no impact whatsoever, but for many it makes a huge difference.
One of those for whom it makes a huge difference is my own web development firm. We’ve found .NET to be a superior web programming language to Java, PHP, or Ruby in a number of ways and it’s our preferred language for building robust web apps. It also happens to involve much more of a learning curve which is its primary disadvantage.
One of the products we’ve developed in .NET is a fairly sophisticated content management system. Up until recently our clients either had to get a dedicated server and buy all the software, or we had to host them on our own server. Seeing as how we’re not a web hosting firm ourselves running our own hosting has been nothing but a pain, and certainly not a money maker for us, even though we’ve charged clients $50-$100 per month for hosting a .NET site.
Now just about every hosting company is offering virtual Windows hosting that will run our content management system. This means we don’t have to do our own hosting anymore (win), clients can have their site hosted in a more reliable setting (win), clients don’t have to pay as much for hosting (win), and if we wanted to make it a quadruple win I suppose we could point out that the hosting companies are now getting business they previously didn’t have. Win, win, win…win.
Do I believe this will cause a huge shift in the number of people developing on Windows vs. Linux? Probably not, there are other reasons why people will continue to use Linux instead of Windows. I think it will cause a slight increase in the number of new projects being developed on Windows, but mostly I think it will make life easier for those who, like us, already develop for our customers on a Windows platform. One thing’s for certain, for those whose apps don’t require a dedicated server for other reasons it removes the argument about not developing on Windows due to the costs involved in paying licensing fees.