I think everyone in the technology field knows Microsoft, you either love them or you hate them. It seems there are more haters these days than those that love them and it is often times their own fault.
My problems with Microsoft have been rooted around a project I had done for a client many years ago based on Commerce Server. For those of you that don’t know, Commerce Server is a product which allows users to setup a complete commerce system based on the Microsoft platform. It also allows developers to heavily customize it to meet the client’s needs. Oh, and it is expensive.
This version of Commerce Server relied heavily on XML and XSLT for rendering pages. Microsoft was high on XML at the time as it was the technology to solve all of our problems.
Along came .NET and the next version of Commerce Server was all based on .NET and XML was not the hotness any longer so they re-wrote from scratch with all the bells and whistles of .NET. What did this mean for the client wanting to upgrade to the new version of Commerece Server? It meant, there was no upgrade. It meant their entire code base was garbage and had to be rewritten from scratch.
This was certainly a dilemma. Do they reinvest in Commerce Server and build their site from scratch, hoping a future version of Commerce Server would not require the same rewrite? My recommendation to them was to toss out what they had and rewrite their system in plain old ASP.NET and C# at the time.
I think this worked out well for them as they don’t have to rely on something that Microsoft could drastically change down the road and leave them in a bind. Sure, Microsoft could change ASP.NET but at this point it is a safer bet it won’t change that drastically. It is at this point I really became suspect of Microsoft and buying into what they tell developers is the next great invention that we should use.
Microsoft has been all about Silverlight for the last couple years as their solution for cross-browser, cross-platform rich Internet application development platform. The idea is we write it once, we run it everywhere. I think we’ve heard this one before (Java, I am looking at you).
The Microsoft Professional Developer’s Conference is happening now (or just ended) and news coming out of Redmond is they are pulling back on Silverlight and HTML5 is the way to go. An interview by MaryJo Foley with Bob Muglia from Microsoft tells the tale:
“Silverlight is our development platform for Windows Phone,” he said. Silverlight also has some “sweet spots” in media and line-of-business applications, he said.
But when it comes to touting Silverlight as Microsoft’s vehicle for delivering a cross-platform runtime, “our strategy has shifted,” Muglia told me.
So what happens to all of those Line of Business applications these companies have been working on? I don’t think I would bet my business on any continued development of this platform in the way it was originally sold to developers.
It leaves some folks wondering:
This appears to be another dead-end for developers. Even if it’s not, the waffling about its future would be enough for me not to use it.
Open Source to the Rescue
I was a Microsoft developer for more years than I care to admit and I have been bitten by their change in direction more times than I can count.
The real solution is to control your own destiny and build solutions with open source components. Speaking as a developer who leverages Ruby and Ruby on Rails, I feel much better about supporting a client and knowing the technology decisions I make for them are safe. Since it is all open source, I am free to make changes to the framework as I need now or down the road. The open source community is vibrant and even the smallest projects are active, but even if they die out..you still have the source to do with as you see fit.
Microsoft rolled off projects involving IronRuby and IronPython to the Mono folks and now these projects will live to see another day.
I really don’t care if Microsoft dumps products (or changes strategic direction, same thing) but don’t leave users in a bind. These projects should be given to the community to move forward and to support. Silverlight could easily be moved down this path, given to a community to evolve and keep those developers who put so much time and effort into. Developers would have a way to leverage their codebase and not be left to explain to product owners how they have invested in a dead-end product.
This might start to build trust again in Microsoft by those that lost confidence. But, open source puts the power and the future of the frameworks and tools we use in our own hands.