Holy Crap! Microsoft Cozies up to JQuery

If you haven’t already heard, Microsoft is actually doing the previously-unthinkable and bundling the truly incredible JQuery library into future versions of Visual Studio (incl. Express), the ASP.NET MVC beta/CTP releases, and presumably anything else web-y that they release in the future.  They will be providing integrated support for intellisense with JQuery methods in the VS javascript editor and actually basing future releases of the ASP.NET AJAX Control Toolkit on many of the fundamental capabilities that JQuery provides.

I’m sure I’m not alone in welcoming this move but this is somewhat surprising news given their past positions on not having anything to do with established OSS projects.  And while it certainly doesn’t allow me to forgive them for driving a stake thru the heart of NDoc with the as-yet-after-three-years-still-unreleased-sandcastle-embarrassment, its certainly a wonderful step in an interesting direction for Microsoft and I commend them for taking this somewhat unusual step of embracing something that fails the NIH test.

But what does this do for the oft-repeated arguments against OSS + MS in the enterprise?

When faced with similar choices in the past (both recent and not), Microsoft has always chosen to duplicate the efforts of existing OSS projects rather than to embrace them.  Sadly, the initial MS offering in most of these cases is usually a pale reflection of the often much more mature OSS project.  But the entry of the 800-pound Microsoft gorilla into any solution-space tends to have the effect at least initially and usually for some time afterwards of stifling contributions and effort on the OSS projects whose territory Microsoft moves into.

Microsoft’s repeated reasoning for duplicating all kinds of existing capabilities from the OSS world has always been to repeat the premise (I paraphrase, of course):

"Microsoft has enterprise customers for whom the adoption of OSS is just not an option and so Microsoft has to provide an offering of its own in each of these areas that comes from Redmond or else these very large, important, Microsoft-only, non-OSS-friendly enterprises won’t have access to a solution in any particular problem space."

In my mind, this move with JQuery tends to cast into doubt the legitimacy of that entire premise in one fell swoop.  Its somehow OK to provide PSS for JQuery, distribute it along with an actual MS product (Visual Studio itself no less, hardly a peripheral Microsoft product), build its own ASP.NET AJAX Control Toolkit atop it, but the same couldn’t be said for NHibernate, Log4Net, Castle Windsor, or any of the other OSS projects that have seen Microsoft start to ‘compete’ in their solution space over the past several years…?

As much as I welcome the ‘change of heart’, I find this new stance confusing given their past history with other similar decisions.

Do Enterprises Really know the CV of What They Are Getting?

Perhaps one can reason that the ASP.NET AJAX Control Toolkit is already open-source (or at least MS-PL which is as close as one can get with MS-provided software) and so basing work on it on something like JQuery isn’t quite the same thing as making NHibernate an officially-blessed O/RM (for example).

But is basing the ASP.NET AJAX Control Toolkit on JQuery really much different than having the Enterprise Logging Application block use Log4Net or having Prism (the successor to CAB) use the Windsor Container instead of Microsoft building Unity and merely providing plug-ability for other IoC containers?  Prism and EntLib aren’t for-fee products any more than the ASP.NET AJAX Control Toolkit yet Microsoft felt compelled to build offerings in the logging space, the IoC container space, and in other areas primarily "because they had no home-grown offering in these areas" when established and robust OSS offerings already existed from which they could have chosen.

The real question is (I think): would a software licensing lawyer in any large enterprise really understand the distinction that the ASP.NET AJAX Control Toolkit is really MS-PL rather than an actual ‘product offering’ and that its therefore a sort of second-tier offering by Microsoft?  And if they would understand this distinction, then isn’t it just as likely that they would look at the introduction of JQuery into the fabric of the ASP.NET AJAX Control Toolkit, perhaps even ASP.NET MVC and other offerings and say "yeah, we cannot use these Microsoft technologies because they include OSS components and we have a strict commercial-only policy here at ACME, Inc."?

Its not clear to me at all that while it seems Microsoft is changing their stance, that Microsoft customers will necessarily change theirs which would seem to lead to an interesting quandary for Microsoft’s large enterprise customers.

It will certainly be interesting to see how this plays out but I for one am thrilled that someone in Microsoft is starting to be open-minded enough to actually start to chip away at the NIH mantra in at least the smallest little bit.