Over the weekend Microsoft's Scott Guthrie, Coporate VP of the
.NET developer division,
announced that the open source
jQuery Javascript library will be integrated into
Visual Studio, the main Windows development tool. Further, Microsoft will treat jQuery as a supported product within technical support contracts, and will use jQuery to build new controls for
ASP.NET, its web platform.
This is a breakthrough both for Microsoft and for open source. In the past, Microsoft has preferred to reinvent the wheel rather than adopting existing open source code. For example, when the company delivered Visual Studio Team System, it did not use existing open source products like
NUnit for unit testing, or
Subversion for source code management, or
Nant and
CruiseControl for build management, but shipped all-new equivalents. That strategy may have backfired. At the recent
Remix08 conference in Brighton, I noticed that when a developer asked about Team System during a panel discussion, he was immediately advised by several other delegates to stick with the open source products.
I don't mean to suggest that Microsoft has only just discovered open source. After all, the company has its own
open source community focused on interoperability, and publishes source code to some of this products under various
shared source licenses. On the developer side, Microsoft sponsors significant open-source products like
IronPython and
IronRuby. But the jQuery case is particularly interesting, because Microsoft already has its own Javascript library called
ASP.NET AJAX.
Is Microsoft now abandoning its own library? At Remix08, I asked Guthrie this very question. "We are definitely still investing in ASP.NET AJAX, there's lots of features coming out," he told me. "But there's a proportion of developers coming from other platforms where having support for other
AJAX frameworks makes it more likely they'll use Visual Studio, which is good for us, and there's some proportion of developers on .NET that would prefer to use other frameworks in addition. People tend to be pragmatic. jQuery is great for
CSS selectors and for the animation engine, but doesn't have a type system like
Prototype or ASP.NET AJAX. We see a lot of developers wanting to use the ASP.NET AJAX class and type system, and then use CSS selectors and animation from jQuery."
In his
announcement, Guthrie explains how jQuery support came about. Developers were asking for features to be added to ASP.NET AJAX, when they were already in jQuery. "As the team started to investigate building it, though, they quickly realized that the jQuery support for these scenarios is already excellent, and that there is a huge ecosystem and community built up around it." That sounds like common sense to most of us, but getting to this point has been a considerable journey for Microsoft.
The move is not without risks. If jQuery is good enough, then what about
PHP, an open source alternative to ASP.NET? What about using Linux instead of Windows, or OpenOffice instead of Microsoft Office? The company can hardly suggest that open source stuff is never any good, when it is integrating open source code into its own products. Instead, Microsoft has to compete on real-world issues like quality, productivity, reliability and support, which can only be good for its customers.