When I was a college student, I often found myself being the sole defender of a viewpoint in the midst of a group argument. One of these common topics of contention was the debate about Microsoft and whether it was a friend to technology and developers. As someone who had gotten familiar with the first edition of Microsoft’s Visual C++ during summer internships, I could see that they were creating the standard for an IDE; they were creating a toolset that would help define the future of programming. Of course, the acolytes of the nascent Linux movement proclaimed Microsoft as the devil and as a necessary target of government regulators, and I was foolish to think otherwise. Contrary to them, my positive inclination believed that they would only improve with time, and as a proponent of free markets, I argued that no government action would be necessary to deal with the unlikely outcome of a complacent, less-friendly-to-developers Microsoft. The world at large would correct them for any such mistakes.
As the years came to pass, it would turn out that both sides of the argument had merit. During the Ballmer era, Microsoft would indeed become complacent in certain regards, and they would become less friendly to developers outside of their walled garden (especially those in the open source community). In many ways, Microsoft was still able to be a technological innovator, but when it came to software development, they had chosen to isolate themselves (as with C#). That self-imposed isolation would prove to be troublesome for the company, as developers and companies began to rebel at the thought of being trapped on one platform. Consequently, the world would indeed correct their mistakes, as open-source companies began to emerge and claim Microsoft’s momentum as their own. I was somewhat disappointed, to say the least.
As a developer who has regularly used C# and the .NET platform over the past decade, I have always appreciated the language and its various tools, but I had always regretted how the technology never had the chance to frolic and blossom with other tech. However, the past few years have been very interesting, and it makes you think that Ballmer’s departure might be the herald of a new era. A couple years ago, I had heard that CodePlex was going to integrate with Git, and I took that as a good sign. When I created my first web service with ASP .NET MVC 4 last year, it was a total surprise to see the contents which came with the default template. The old Microsoft would have frowned on any integration with open source technology, but my web service had multiple references to it, including JQuery and Glimpse. More importantly, it was only a few days ago that Microsoft announced its intention to open source the core of the .NET platform! At this rate, I see only more positive things in the future; it turns out that my college self was right after all. My only mistake was that I didn’t realize all good things require patience, and along with some healthy competition, sometimes becoming enlightened requires a few hard knocks. Lesson learned.