Open Source @ Microsoft

Introduction

This post is based on the presentation I did for Porto Tech Hub 2015, Microsoft ♥ Open Source, slightly revised and augmented.

TL;DR

I intent to demonstrate that Microsoft’s involvement with open source is not exactly new.

So, the big news is:

  • Microsoft is embracing/supporting/producing/using open source software: Microsoft
    &
    Open Source
    Software!
  • Lots of APIs are now open source, others will follow!
  • Applications are being considered for release as open source!

But, let’s think for a moment… is this actually new?

A Bit of History

So, let’s take a walk down the memory lane and remember some of Microsoft’s positions on this subject…

2001

Hmmm… this doesn’t seem good for open source, does it?

2005

First version!

2006

Nice! At the time, AJAX Control Toolkit offered some cool features that would integrate nicely with ASP.NET!

2007

Open Office XML formats!

2009

Interesting! Who would have thought? Microsoft was then the 17th top contributor to the Linux kernel, even for “selfish” reasons – they wanted to be able to run Linux inside virtual machines, and also that Linux could run Windows VMs.

2010

Oxite was an attempt at building an open source CMS, which was discontinued. Eventually, some of the people involved moved to Orchard. Nice to see that VS includes jQuery and Modernizr in their ASP.NET templates!

2012

Wow, this this is getting interesting! All of MVC, Web API and related stuff is now open source! It seems they are getting serious about this!

2013

Visual Studio now has Git support!

2014

War is over! All peace! Winking smile

2015

Wow!!

But Why?

But why the big shift? Well, in my view, there are a couple of reasons:

  • Trust the source: companies will respect more a package if they can see what’s inside and even change it
  • Gain from community: attract respected developers from the open source communities; have others fix bugs and contribute new features
  • Build bridges: join communities with similar concerns together; we don’t always have to be competitors
  • Reach other markets: sell software to other platforms; profit from support instead as from licenses
  • Everybody else is doing it!

What Exactly Are We Talking About?

So, what is exactly Microsoft’s commitment to open source today? I’d say it’s down to:

Standards

Microsoft has submitted for standardization (unlike others who are generally considered more open source friendly). Some examples include:

Not exactly open source, but they are also involved in the working groups that are specifying a number of technologies:

Languages

They have also build a couple of open source languages:

And also support others in IIS and in tools such as Code and WebMatrix:

Frameworks and Libraries

Microsoft has made available a number of frameworks and libraries, including:

A free implementation of Redis:

It also contributed a number of libraries to existing projects:

Visual Studio templates include popular open source JavaScript libraries:

And IntelliSense is offered for a number of others:

The next version of Visual Studio, 2015, will also support popular libraries for building JavaScript and managing dependencies, fully integrated with the IDE:

Finally, the Microsoft Ajax Content Delivery Network makes available all of these and more: http://www.asp.net/ajax/cdn.

Tools

Also some great tools have been open sourced:

Others were made freely available:

Where Can I Find More Info?

There are a number of Microsoft-sponsored locations:

What’s Next?

Microsoft – or, rather, some of its employees – have given glues on what might come next:

  • Windows Live Writer: the popular blog editor is probably going to be released as open source. Scott Hanselman has been championing this cause
  • Internet Explorer: there have been talks about open sourcing it, especially now that it is going to be replaced by Edge in Windows 10
  • Windows Phone and Windows: also possible, there have been rumors about it, but not quite substantiated, I’d say

I would like to add a couple of suggestions myself:

  • SharePoint Designer: it is now freely available and has a number of notorious bugs; could profit from the community, because there is no other tool that does what it does
  • Expression Studio: the Expression suite has been discontinued and parts of it are present in Visual Studio 2013
  • Visual Studio Code: it is already based in an open source project (GitHubAtom)

Conclusion

So, as you can see, open source and Microsoft’s engagement is not exactly new. Microsoft has made important contributions to open source and appears to be willing to go even further. Not sure if Windows or Visual Studio themselves will ever be open source – I doubt it – but I think we will see an increasing push towards cross platform and open source solutions in the Microsoft ecosystem. These are interesting times indeed! Winking smile