Microsoft is serious about open source: 10 proof points

Microsoft is serious about open source: 10 proof points

Summary: Microsoft has come a long way in its acceptance of open source. And its motto doesn't seem to be (this time) to embrace and extinguish.

SHARE:
TOPICS: Microsoft
257

I’m taking a couple weeks off before the busiest part of Microsoft’s 2012 kicks into full gear. But never fear: The Microsoft watching will go on while I’m gone. I’ve asked a few illustrious members of the worldwide Microsoft community to share their insights via guest posts on a variety of topics — from Windows Phone, to Hyper-V. Today’s entry is all about Microsoft and open source and is authored by Richard Turner.

Microsoft is increasingly warming to open source. Not only is the company increasingly publishing open-source projects of its own, it’s also developing major parts of its web/cloud infrastructure in the open and is also supporting a variety of external open-source projects. This is great news, but it’s taken a long time and a considerable amount of hard work and damage-repair to make it happen.

Microsoft’s stance on open source began to thaw during the 2000’s as the company grew-up and learned more about open source and how it can significantly benefit all of us.

I thought it would be constructive to share examples that illustrate that Microsoft (and its ecosystem) are serious about mending fences, supporting external open-source projects and opening up development teams and projects. Here's my top 10 list:

10: Encouraging the Open Source Ecosystem

The Windows and .NET development community is exploding with home-grown .NET open-source projects and initiatives. Everything from IoC/DI containers such as Ninject, AutoFac, Castle Windsor and StructureMap to testing tools like nUnit. From NOSQL document stores like (the utterly awesome) RavenDB to powerful Content Management Systems (CMS) like Orchard and Umbraco. And let’s not forget IronPython, IronRuby and F# that Microsoft nurtured before transitioning to community ownership in 2010.

These are just a tiny subset of the amazing range of open-source projects built specifically for (or supporting) the .NET/Windows platform.

9: Wheel-Reinventing Reduced

One of the biggest criticisms many have had of Microsoft is its insistence in building its own version of technologies that already exist in the open-source world.

It came as a pleasant surprise, therefore, when Microsoft shipped ASP.NET MVC 3.0 with jQuery and Modernizr included. This was a big step forward (and was the result of a HUGE amount of effort internally) and marked one of the first times Microsoft shipped a major product containing open-source code. In ASP.NET 4.0, Microsoft is continuing the adoption of open-source projects by including jQuery Mobile & JSON.NET.

8: Facilitating With NuGet Package Manager

Almost every active open-source development ecosystem has seen huge growth in the number of open-source utility libraries made available by “package managers” such as Ruby’s Gems, node’s npm, etc. These package managers allow developers to simply type, for example, “npm install express” and the express library will be downloaded and installed into the user’s current project/system.

A package management tool was missing from the Windows/.NET developer’s toolbox until a skunk-works team at Microsoft created NuGet – a package manager for .NET developers. NuGet and its accompanying site, gallery and package feed were adopted by the Outercurve Foundation in October 2010 and is now maintained by the NuGet team and the community. The NuGet gallery currently contains almost 6000 packages including jQuery, Modernizr, JSON.NET, ELMAH, log4net, Ninject, and the vast majority of the libraries most useful to .NET developers.

While many other open-source communities would scoff at “only 6000” packages being available, it’s important to note that the project count is increasing rapidly and that the proportion of really useful packages to frivolous and/or repetitive packages is very small. Let’s hope it stays this way!

7: Making Windows a great platform for open-source

Many of the hottest open-source projects available today were originally built on Linux-based platforms and, as such, are welded to UNIX-style IO, file storage, process management and thread scheduling mechanisms. In order to run on Windows, such projects typically run under CygWin – a POSIX emulation infrastructure that allows most POSIX apps to run unchanged on Windows. While this is a pragmatic approach for non-performance-sensitive code, Cygwin often introduces a significant performance hit in high performance code.

This was the situation facing node – the blossoming asynchronous JavaScript engine – to run on Windows, it had to be run under CygWin, which impacted performance significantly. To solve this problem, Microsoft and Joyent (node’s primary sponsor & employer of Ryan Dahl - node’s creator) agreed to work together to make node run natively on Windows. The work to port node to Windows spawned LibUV – a library that provides a platform-abstraction layer allowing node (and any other open-source project) take full advantage of both *N*X and Windows’ async IO (and other platform dependent differences) with little effort.

In November 2011, Microsoft announced the first stable builds of node, using the new LibUV library, running natively on Windows. Simultaneously, Microsoft built IISNode allowing node to be hosted within IIS (Microsoft’s web server). The code for IISNode is hosted on GitHub and is free and open for all to see and/or modify should you wish to do so. And that’s not the end of the story: LibUV has turned out to be so useful that other open-source projects are now employing it to port their code to run natively on Windows.

6: Forking and Maintaining Ports

In a sign of increasing maturity in how it works with open-source communities, Microsoft has now begun (appropriately) forking and maintaining open-source projects: In November 2011, Antirez announced that Microsoft had provided patches to port Redis to run natively on Windows, using LibUV. While Antirez decided NOT to accept Microsoft’s patches into the Redis core (yet, for reasons he articulated in the post linked to above), he encouraged Microsoft to create their own Windows fork of Redis. Microsoft worked with others in the community to create a Windows fork of Redis which became the first project officially published by the newly formed Microsoft Open Technologies Inc. subsidiary formed in 2012 and is run by Jean Paoli.

5: Supporting Apache, PHP and Ruby on Windows

In 2008, Microsoft began helping upgrade Apache and PHP significantly update their projects in order to support the newer and far more effective Visual C++ 2008 VC9 compiler. This work resulted in native builds of both the Apache web server and the PHP engine which consumed less RAM and performed much better than before.

In 2008, alongside the new and improved PHP, Microsoft also released support for FastCGI within IIS. This enabes IIS to reliably host non-threadsafe code such as PHP and Ruby, alongside .NET code and native IIS handlers and modules within the same website if required. This means that IIS can now safely and reliably host PHP-based websites and services including Wordpress, Drupal, Joomla, etc.

4: Supporting open-source platforms in Azure

At Mix09, Microsoft announced official support for PHP, Java and Ruby on Windows Azure.

Since Windows Azure Web Role instances are essentially Windows Server VM’s, this should come as no surprise since Microsoft had already released FastCGI support for IIS.

What this announcement introduced, however, was the fact that not only was Microsoft supporting PHP, Ruby and Java on Azure, but that they were also in the process of providing comprehensive API’s for each environment, allowing developers to access all of Azure’s service control & configuration capabilities, table, blob and queue storage, message-bus infrastructure, etc. from their preferred language/platform. Then, in December 2011, after the work to port node to Windows was completed, Microsoft announced that node is now fully supported in the Windows Azure cloud platform, along with a node Azure SDK providing programmatic access to the Azure environment and storage and message-bus infrastructure.

3: Backing Hadoop

In late 2011, Microsoft and HortonWorks announced they were teaming-up to port Hadoop to Windows. This is a big deal; not only did Microsoft decide to plow effort and resources into porting Hadoop to Windows, they decided to abandon their own home-grown big-data solution in the process. Microsoft’s adoption of Hadoop can only result in good things – particularly to end-users who will be able to analyze colossal datasets using familiar tools such as Excel and PowerView.

2: Becoming A Top-20 Contributor To The Linux Kernel

In 2011, Microsoft became one of the top 20 contributors to the Linux kernel … the same Linux that CEO Steve Ballmer described as a “cancer” just over 10 years previously. My, how times change!

Microsoft’s contributions largely center around drivers they submitted to enable Linux to be hosted within Hyper-V – Microsoft’s OS virtualization technology. The drivers Microsoft submitted to the Linux kernel project provide a significant performance boost to Linux VMs’ storage, networking and video-subsystems.

1: Open Sourcing ASP.NET MVC4.0, WebAPI and Razor View Engine

Perhaps the biggest news related to Microsoft and open source came when Microsoft announced that:

  • ASP.NET 4.0 MVC, Web API and Razor View Engine would be made open-source
  • The ASP.NET team will consider accepting changes to ASP.NET submitted by the community
  • The ASP.NET team would continue development of ASP.NET “in the open”, submitting all future code changes into a public-facing GIT repository hosted by the Outercurve Foundation’s CodePlex site.

I think it clear that Microsoft has finally turned a corner and is now increasingly following a path towards greater acceptance and support for open-source. This is a GIGANTIC step forward.

Microsoft is leading by example and sending a strong message to their legions of developers that open-source need be feared no longer and that publishing open-source code benefits everyone. Hopefully, this will result in a gradual, but eventually sizable increase in the volume of high-quality, reusable code being made available as open-source for us all to enjoy, learn from, help improve and adopt.

As a co-founder of a new start-up building our fledgling business atop open-source technologies and platforms, I can only commend Microsoft for its considerable investment and support of various important open-source projects.

It’s about time! Welcome to the open-source world, Microsoft. It’s great to have you onboard!

Turner is co-founder of Appuri Inc. and is busy with his other co-founders building an expansive, inclusive, social entertainment platform. Prior to founding Appuri, he spent 10 years working at Microsoft. Before Microsoft, Turner worked as a C/C++ and Delphi developer before forming and running a startup during the first dot-com bubble.

Topic: Microsoft

About

Mary Jo has covered the tech industry for 30 years for a variety of publications and Web sites, and is a frequent guest on radio, TV and podcasts, speaking about all things Microsoft-related. She is the author of Microsoft 2.0: How Microsoft plans to stay relevant in the post-Gates era (John Wiley & Sons, 2008).

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.

Talkback

257 comments
Log in or register to join the discussion
  • not really

    http://arstechnica.com/information-technology/2012/05/no-cost-desktop-software-development-is-dead-on-windows-8/
    ComradeLuigi
    • Relevant

      Why is your link relevant to open source? This is just talking about Microsoft making you pay for Visual Studio to develop Metro apps vs using VS Express.
      bmonsterman
      • Re: Relevant

        Mary Jo's article mentioned that Microsoft worked to get various OSS projects working with the latest VC++ compiler. Yet going forward (as mentioned in the Ars article) there will be no way to get that compiler for free on Windows, not even as part of the SDK as was previously the case.

        In fact the Ars article has an entire section titled "Hindering open source development"; did you read it?
        tobiasly
      • Free?

        Yes I did read the section "Hindering Open Source". I think the writer, as well as many in these forums are misguided. There is nothing in the tenants of open source that guarantee free stuff. That's FOSS, which is different. Admittedly it's disappointing that MS is stripping down the VC++ compiler that comes with the SDK (which is free). I don't think that fact by itself is enough to undo the overall change in direction they have taken towards open source.

        Don't get me wrong. I'm not naive enough to believe that MS is now an open source champion. At least they've come around to the notion that open source projects have their role in the developer community.
        bmonsterman
      • Since when is Free a requirement of an Open Source developer?

        [i]there will be no way to get that compiler for free on Windows[/i]

        Open Source means the source code is freely available. That's it.

        It doesn't mean the development tools are free.

        It doesn't mean the OS is free.

        It doesn't mean the hardware is free.

        If we used your definition then open source is only possible using donated hardware and a free OS like Linux. There could not be open source Windows applications because Windows is not free and you need Windows to compile the application. There could not be open source OS X applications because Macs are not free and you need a Mac to compile OS X applications.

        If you don't like that explanation, how about this one:
        It costs you nothing to write and distribute the source code. Start vi and write as much Metro code as you want. Save it. Post it on the Internet. That's open source.
        toddbottom3
      • ethical dilemma

        @tobiasly

        "Yet going forward (as mentioned in the Ars article) there will be no way to get that compiler for free on Windows, not even as part of the SDK as was previously the case."

        But is that wrong? As source code is still open. Of course if you need that specific compiler it can be ethically wrong. But does same thing touch developer tools as open source software (code) that it does not mean it should be free by price?
        As open source software can be expensive, you just need to give source code in that price as well or at least with shipment fee.
        After all, compiler is a program as well.

        So developing open source software with closed source program isn't wrong. But it does bring a ethical dilemma if that closed source program is needed to get the open source code to compiled to binary code.
        Fri13
      • 7

        @ Bmonsterman

        "There is nothing in the tenants of open source that guarantee free stuff. That's FOSS, which is different."

        Free software does not mean source code or compiler should be free by price, only free as speech. If compiler is not under open source license (free software if some may, like GPL) then it isn't. Still it does not make the open source developed with them non-free.

        Free Software can be very expensive or it can be free by price. Usually they are free by price. But no one is forcing to have FOSS software given free to everyone. Actually, FSF even suggest that people would place a price for FOSS software.
        Fri13
      • @Fri13

        "Free software does not mean source code or compiler should be free by price, only free as speech. If compiler is not under open source license (free software if some may, like GPL) then it isn't. Still it does not make the open source developed with them non-free."

        Ah, see now, THAT is relevant.
        bmonsterman
    • You lost me

      @ComradeLuigi
      Is there any relevance to your post tile vs. the link your provided. The link totally defeats your title and your intention.
      Ram U
    • @ComradeLuigi

      And this has what to do with open source development for Windows?

      Nothing.
      bitcrazed
      • RTFA

        "Hindering open source development". Did you not read the article?

        How can Mary Jo say they're serious on the one hand and yet the compiler for Visual C++ 2010 Express will soon become obsolete forcing people to spend $400-500 for Visual Studio 11 Professional? In other words, how can you develop a project that's free to use but not free to compile? Especially since it's the developer that's doing all the work.

        A key point is mentioned:

        [i]"Charging developers for Visual Studio is, in effect, making developers pay money for the privilege of making Windows worth buying. And yet, without third-party software, Windows itself has next to no value; it doesn't seem right to make programmers pay just to be able to make Microsoft's operating system valuable."[/i]

        The bottom line is one shouldn't be surprised by any of this. If it sounds too good to be true then it probably is.
        ScorpioBlack
      • @ScorpioBlack

        Let's at least TRY to keep things civil shall we?

        Can you use VS Express 11 to create a DLL using C++? Yes.
        Can you use VS Express 11 to create a Metro app? Yes.

        Can you use VS Express 11 to create an exe that runs on the desktop? No. So can I continue to use VS Express 2010 to do so? Yes.

        And at the end of the day, can I use GCC to compile C++11 code to run on the desktop? Sure.

        You have options. You may not like the fact that you can no longer build desktop apps using VS11, and, yes, it may require some effort to port existing Win32 apps to run in Metro in order to continue to use Microsoft's free dev tools, but that's a choice only the owner of an open-source project can make.

        From a personal perspective, I think it's a shame Microsoft took this decision, but I understand why they did. And, further, I understand that its their decision and their right to choose how, when and where to give away free versions of the software that they spend billions of dollars every year to build, ship and support.

        At the end of the day, as an open-source developer myself, I may opt to build desktop apps in GC++. But frankly, I'll probably start looking into how to build compelling Metro user experiences instead since that's the future direction Microsoft and its enormous ecosystem, not to mention its colossal user base, is going.
        bitcrazed
      • @ScorpioBlack - rhymes with "humbass"

        "RTFA - Did you not read the article? How can Mary Jo say they're serious..."

        Why not take your own advice? If you actually read the article to which you were commenting, you would know that it wasn't Mary-Jo who wrote it.
        daftkey
      • @daft

        You conveniently cut off the rest of my quote.

        I said:

        "[i]How can Mary Jo say they're serious on the one hand[/i] (meaning the article up above) [i]and yet the compiler for Visual C++ 2010 Express will soon become obsolete forcing people to spend $400-500 for Visual Studio 11 Professional?[/i] (meaning the article in Arstechnica)

        Do you not know what [i]"on the one hand"[/i] means?

        You really should consider blowing smoke somewhere else.
        ScorpioBlack
      • @ScorpioBlack - <sigh>....

        "You conveniently cut off the rest of my quote."

        The rest of your quote was irrelevant and your credibility was already shot making it otherwise worthless.

        "How can Mary Jo say they're serious on the one hand (meaning the article up above) "

        I know you meant the article up above - that's the article I was referring to. It was written by Richard Turner, not Mary Jo Foley. It says so in the first paragraph of the article. If you didn't read that far....

        "You really [need to] consider blowing smoke somewhere else. "
        daftkey
      • @bitcrazed

        [i]From a personal perspective, I think it's a shame Microsoft took this decision,[/i]

        Well I'm glad you see it that way.

        [i]but I understand why they did. And, further, I understand that its their decision and their right to choose how, when and where to give away free versions of the software that they spend billions of dollars every year to build, ship and support.[/i]

        Sure they have a legal right to do this. Absolutely. It's their software. They can charge out the azz if they want to.

        But it's also my right not to like it and say so, just as Peter Bright did with his article quoted at the link up above. Not everybody out there is going to unquestioningly accept every decision Microsoft makes and not say anything about it. But since you agree with me in part then there's some progress, so...

        I guess that's part of the price Microsoft pays for being so ubiquitous and unavoidable. Oh well...
        ScorpioBlack
      • @daftkey has gone daft

        [i]The rest of your quote was irrelevant and your credibility was already shot making it otherwise worthless.[/i]

        Only because you're pissed off that I pointed something out to you that didn't want to hear. Too bad. Tough.

        [i]I know you meant the article up above - that's the article I was referring to. It was written by Richard Turner, not Mary Jo Foley. It says so in the first paragraph of the article. If you didn't read that far....[/i]

        No it doesn't. That link by ComradeLuigi points to an article written by Peter Bright pointing out Microsoft's true attitudes concerning open source development. Away from the FUD propaganda presented by Microsoft's latest press releases.

        How come @bitcrazed had no problem following the link and you do? Too long? Too many words not condensed down to simple soundbytes? Not Windows 8 Metro tiled enough?

        You obviously didn't comprehend Mr. Bright's article so you have nothing left to you except personal attacks. Lame... Really lame...
        ScorpioBlack
      • @bitcrazed @daft

        "There goes the neighborhood..."

        That's pretty much all you can say when this one walks in, unless you're into monstrous wastes of time. ZDN has been long overdue for taking out the trash.
        thoiness2
      • @Scorpio...

        ..honestly, I don't know why I even bother.... must be Friday...

        "No it doesn't. That link by ComradeLuigi points to an article written by Peter Bright pointing out Microsoft's true attitudes concerning open source development."

        I was referring to *THIS* article. The one where you were asking "How can Mary Jo say..." when Mary Jo actually DIDN'T say anything - she lent her blog space out to another author named Richard. This is in the same article where, true to your elitist attitude, you hollered "RTFA".

        "That link by ComradeLuigi points to an article written by Peter Bright pointing out Microsoft's true attitudes concerning open source development. Away from the FUD propaganda presented by Microsoft's latest press releases. "

        I understand you were. I just chose not to acknowledge that article as, mentioned below, it's really complaining because a bunch of freetards think they should get everything for free. If you wanted to throw your lot in with them, you should have commented in the thread of the ars article, not this one, where people who might actually work for a living hang out.

        Not sure how any Fear Uncertainty or Doubt was spread by Richard (not Mary Jo's) article, considering Richard (not Mary Jo) was simply outlining some of the areas where Microsoft supports Open Source. If that makes you scared, so be it.
        daftkey
      • And speaking of mess, theomess2

        Did you make sure to wipe todd's bottom today? :p

        lol...
        ScorpioBlack