Hot on HuffPost Tech:

See More Stories
Free Switched iPhone app - try it now!
AOL Tech

IIS vs Apache, in pictures

There are very few software products that I abhor. It's a short list, they know who they are, and it hasn't changed in years. At the top? Internet Information Server (IIS), Microsoft's poorly conceived and even more poorly executed web server platform. I don't understand what makes someone choose Microsoft's IIS over the open source Apache and, after seeing this, I don't think I ever will.

Programmers are all too familiar with the phrase "spaghetti code", a derogatory term for what happens when functionality (and thus the number of lines of code and function calls) grows without any thought given to design and simplicity. Complexity is the mortal enemy of security and stability when it comes to software development.
The following images help to illustrate the concept of spaghetti code in a way words never could. They also do a strong job of demonstrating why most Web 2.0 startups are living and dying by the open source holy trinity, Linux+Apache+Php/MySQL.

This diagram of Apache's internal system calls shows a fair bit of organization and diligence. It's neat, it's tidy and it's compact. This is (mostly) how a diagram of system calls should look.

Then we have IIS. It's schizophrenic, distracted and tangled. It's knotted in such a manner that, if it were a pile of shoelaces, you'd probably just buy new laces and start over. I respect anyone who has to go near the lines of code which produce this diagram, and I feel for anyone who is forced to administrate the resulting web server.

Tags: Apache, IIS, spaghetti code, SpaghettiCode