I’ve been working with Microsoft technologies for over ten years, specifically Microsoft’s web development technologies. During that time I have built a variety of sites ranging in scope from e-commerce, educational, service provision, SaaS, to dashboards, portals, internal tools, and even SAP-migration. While I praise the technology stack for what it allows me to do, it also comes with a whole host of limitations that make it hard for me to deliver the experience my clients would like. Throughout this decade of web development I have heard a lot from those around me about alternative technology stacks that promise all manner of improvements and experiences. Unfortunately there is a lot of resistance from any one technology stack to listen to and learn from the stacks around them, most of the cross-platform feedback comes in the form of “Microsoft sucks” or “PHP is for fan-boy script kiddies”. The truth is that a large number of successful business are hosted on a wide variety of platforms. Each technology stack has to at least be viable for that to be true. The problem is getting at the truth without the zealous noise of “my stacks better than your stack” getting in the way.
I decided that it was time for me to branch out and become more informed on these technologies myself so that I could truly understand the differences and what made each of them unique. I’m hoping that as part of this experience I can not only become a better developer but also learn the problems that Ruby on Rails or PHP addresses. I’ll like to be able to speak from an informed standpoint about the differences between the Microsoft and open-source approaches as well as better understand the problems each of those development worlds faces on a daily basis. Either way, it’s going to be a heck of a lot of fun.
The experiment I have in mind is to build the same web-site using four different technologies. From the Microsoft camp I have chosen ASP.NET and Silverlight. From the open-source perspective I have chosen PHP and Ruby on Rails. I chose PHP and RoR because they are two technologies that I have always wanted to learn. Learning both of those will also require some digging into Apache and Linux, another two areas that I have too little direct experience with to effectively participate in an informed conversation.
Our horses are ready to race. In terms of hosting, I have selected DreamHost for the PHP and Rails sites, and I’m going to use StormHosts for the ASP.NET and Silverlight projects (assuming that SH can do .NET 3.5, which I believe I saw at some point). The reason I’m using remote hosting services for this experiment is that I don’t believe you get the true experience of a technology stack until you host it in this way. It is very easy to get a Rails site up and running using WEBrick and a local installation of Ruby. Similarly, it is easy to get an ASP.NET site running on the personal web server that ships with Visual Studio 2008.
The first phase of the experiment is to get a “Hello World!” site up and running for each of the four environments. The specifications are that a single end-point be accessible that displays the text “Hello World!” and that this end-point is accessible in both Internet Explorer 7 and FireFox 3.