Sunday, April 27, 2008

Technologies that have gone “Cold”

Couple of day’s back we were in technology discussion with a client to discuss the the implementation technology of their product. They were primarily a Cold Fusion shop and we were recommending them to implement the new product on the .NET framework via ASP.NET.

Since we have access to several Microsoft resources, had posted the question to some of the architects in Microsoft if they had any material on Cold Fusion vs. ASP.NET, interestingly couldn’t find an MS architect who was up-to date on the Cold Fusion compete scenario. That’s odd if you think about it cause most of the client facing MS folks walk around carrying MS Tech vs. X technology “battle-cards” around with them and are ready to pounce on the topic. Apparently it seems that these days Cold Fusion is not on Microsoft’s compete radar, hmm…how important is a fact like that? Note that that’s not to say Microsoft doesn’t compete with Adobe. Interestingly other than Microsoft the only other company which has the broadest vision on Rich vs. Reach software delivery is Adobe. In case of MS the Rich vs. Reach extends from WPF->Silver Light->AJAX.NET Asp.NET, in case of Adobe its Flash->Cold Fusion. However on the pure web technology Cold Fusion doesn’t seem to be on MS radar – from what we have seen the other technologies that are on MS radar on the pure web technologies include PHP and Rails (it seems that even JSP has started moving out on the outer periphery of MS radar). From what we gather, the last time Cold Fusion was on MS compete radar was 2004-2005.

Microsoft has just one primary goal - to ensure that Windows is the platform of choice, and they invest huge amount of money into doing comparative analysis on other competing platforms and technologies and are quick to either adopt the new trends or via their internal R&D engine stay ahead of the curve. The compete documents from MS provide insightful cases when MS technologies are better than other etc. In many ways looking at MS radar for technology comparison is like referring to the reports of some of the IT industry analysts like Gartner/IDC/Forrester etc ie instead of spending a lot of our time into investigating the right technologies we can leverage the R&D effort done by someone else. But still, how important to select from a product that’s on Microsofts compete radar? To put it in a different way - imagine your going to direct a movie and you have chosen the lead actor because you have worked with him in the past and he is a friendly guy..however the paparazzi doesn’t care about him and don’t even want to take his pictures… he is just not on the paparazzis radar. Would you still go ahead and direct the move with the same cast? :)

Jokes apart selecting the right platform is a critical first step. We might sometimes be religious of our preferred technologies but at the end of the day the technology you select should be able to give you the best ROI on your investments and a faster time to market. Cold Fusion (CF) by the way is a great technology, several years back it was a very compelling product and was light years ahead of other vendors particularly in terms of productivity (CF abstract a lot of the technical details away from developers). Productivity still continues to be the #1 reason most companies choose CF. But other vendors have caught on productivity side, ASP.NET with Visual Studio.NET and AJAX.NET offer the same level of productivity. However the .NET platform has much more to offer. In many way it does not abstract the details from the developers so there might be a more steeper learning curve, however abstracting too many things is also not a good thing. I still remember the time I was coding in VB (classic VB ie not VB.NET) – VB was a high productive environment that was extremely productive but the moment you had do to something out of the ordinary/required more performance/threading etc you wished you had developed the product in VC++ - i.e. productivity alone should not determine the selection of a technology unless productivity itself is the primary goal (as in case of most departmental level IT projects). Given this clients solution was to be hosted on the internet performance was a key driver for the selection of the technology ie higher performance implies running more on less hardware -> reduce the operational cost, this is where ASP.NET had a clear advantage over CF also since the hardware they already had were Windows based no additional software cost had to be incurred when running ASP.NET however in case of CF they had to purchase the Cold Fusion Application Server. This along with other factors made ASP.NET a more compelling choice.

If you were to build a web application and had to choose a web technology keeping in mind good balance of performance, ROI, productivity etc what technology would you adopt? And would you keep the paparazzi in mind when selecting the technology :)?

0 comments:

Post a Comment