home

IIS or Apache?

It seems that there are two breeds of web developers, those who develop using Microsoft products and those who don’t. Most developers have very explicit opinions on the subject and will argue their perspective to the bitter end. Whether to use Microsoft products or not is a truly holy dilemma. I have spent some time in the academic world where they talk about Microsoft like it is the antichrist. I’ve also spent alot of time in the professional world where I’ve seen mixed emotions on the subject. One thing that I’ve always disliked about Microsoft bashers is that most of them have strong opinions, but no experience to back those opinions. They have never developed applications in Visual Studio nor are they aware of some of the technologies Microsoft has created for developing web applications. I have had a decent amount of exposure to both development environments and my conclusion is that they both have great strengths and the choice to go with one or the other should be based on one’s needs.

When I first started to look for work as a developer, it seemed that most of the companies that were hiring were Microsoft shops. So in order to keep food on the table, I made efforts to learn Visual Basic and SQL Server. I learned ASP after having done some exposure to PHP and I learned SQL Server after having some exposure to MySQL. I consider PHP and ASP to be pretty equal in terms of the technical capabilities. They are both server side scripting languages for creating database driven web applications. However, since PHP is free and can run on any web server it makes an ideal candidate for many many cool open source applications such as the CMS on which this site runs, WordPress. Also, “classic” ASP is no longer supported by Microsoft since they are now promoting ASP.NET while PHP will be around for a long long time. PHP and MySQL are ideal candidates for startups that don’t have much capital to spend on software.

The more freelance projects I take on, the more I see the power of Open Source development. There are so many ways to paint yourself into a corner with proprietary software. If you invest in a proprietary technology you are making a comitment that will affect you for the entire lifecycle of your application. You can plan on upgrading and retrofiting at some point in the future if your application has a long lifecycle. If you use open source tools, not only can you build on the out of the box functionality and if something breaks, you have the power to fix it. I’ve seen it happen many times with Microsoft products, they pump something like its the next big thing and two years later they completely drop the product and stop supporting it. They take measures to make sure that you keep throwing your money at new products.

One thing that I have to give Microsoft credit for is their efforts in server technology. There is a reason that there hasn’t been a release of Windows in three years. Microsoft has focused alot of resources on its .NET initiative and has put out some very innovative server side technologies. I absolutely love ASP.NET and ADO.NET. Things that took 100 lines of code to do in classic ASP can be done in 3 lines of code in ASP.NET. The object libraries that .NET provides is truly immense. ADO.NET makes it easy to work with data. Verson 2.0 of the .NET framework just went out of beta and unleashed many more great tools for web development. Microsoft has made great efforts to establish itself as the best tool for web development and I’m not ashamed to say that I love developing apps using Visual Studio .NET.

So contrary to what most developers on either side of the fence will tell you, there really is no clear advantage in using Microsoft tools or open source tools for web development. The answer lies heavily in one’s particular situation with the key variables being money, development resources and scope.

One Response to “IIS or Apache?”

  1. Travis James
    March 16th, 2006 08:30
    1

    I just read this post and thought I would respond with a few comments based on my experience using .NET (mostly, because I used to work for Microsoft), J2EE, PHP, MySQL, and Ruby on Rails.

    While I am certainly not a Microsoft bigot, there are a couple of factors that are hard to ignore when analyzing platforms:

    First, while it is true that using Microsoft products can tend to marry you to a particular platform choice, in all practicality, any development team is ALWAYS married to one platform or another in the end no matter what is chosen. Even with PHP and MySQL, for serious applications accomodations are made in code based on the platform, machine architecture, etc.

    In addition, for non-Microsoft based applications, there is very, very little truly integrated tool support. For a PHP based solution, there are no less than 3 different vendors involved (the PHP, MySQL, and Apache)–many of those open source vendors where there is no support if there is a bug. You are on your own to fix it. For pet projects, this is okay, but when there is real money involved, fiscal accountability is extremely important. It is possible to implement a Microsoft solution at low cost using only a single vendor accountable for all the parts and STILL support open standards that allow for integration with other applications on other platforms.

    These days, you can get a dedicated IIS server for about the same cost as a Linux server through a hosting provider. These packages include support for SQL Server as well in many cases, and using Visual Studio Express Editions, which are FREE, development can be done at lower cost than a comparable PHP or Java solution, since the development time is so much shorter on Visual Studio, which integrates ALL the parts in a fluid way.

    Just a few thoughts from the “other” side.

Leave a Reply