Microsoft's relationship with the open source movement has undergone an extraordinary transformation over the last few years, from a deep hostility to what can only be described as an embrace.
One specific target of its hatred was the GNU General Public License (GPL), under which much open source software is made available. "The way the license is written, if you use any open-source software, you have to make the rest of your software open source," Steve Ballmer, Microsoft's ex-CEO, said erroneously in a Chicago Sun-Timesinterview back in 2001.
The open source Linux, which threatened the company's Windows Server operating systems, was another Microsoft target. "Linux is a cancer that attaches itself in an intellectual property sense to everything it touches," Baller said in the same interview.
[ Related: Microsoft Embraces Open Source -- to a Point ]
What Microsoft is up to now was unthinkable back then. Today Microsoft is involved with open source community. It participates in open source projects. It has open sourced some of its formerly proprietary software, such as parts of its ASP.NET Web application framework, the Windows Phone toolkit and the Azure .NET software development kit. It has set up CodePlex, a free open source project hosting site.
Going one stage further, the company has established Microsoft Open Technologies Inc. (Open Tech), a wholly owned subsidiary of Microsoft "focused on advancing Microsoft's commitment to openness across the company and throughout the industry."
What does Microsoft mean by "openness"? "Openness is much more than just open source. It also includes interoperability and open standards," says Gianugo Rabellino, senior director of Open Source communities at Open Tech. This triumvirate of open source, open standards and interoperability is a refrain that Rabellino -- and, indeed, Microsoft -- keeps coming back to.
Software Market Changed, So Microsoft Changed, Too
The big question: Why the change? Why the complete about-face when it comes to open source software from deep hostility to open embrace?
"The market has changed," says Rabellino, saying that 2002 was very different than today. "Everyone is adapting. So is Microsoft."
Perhaps more tellingly, Rabellino hints that Microsoft software isn't as fundamental to the way organizations work today as it used to be. Many companies get their software as a service from the cloud. Microsoft can no longer call all the shots. It needs to cooperate to continue.
"The cloud is shipping workflows to people, so the relevance of the software stack beneath is less important," Rabellino says. "What's important is open APIs."
Microsoft is in the business of making money, so it's possible that it's only involving itself with open source software and openness in general because it sees it as the best strategy to make money. That's probably the case -- not that there's anything wrong with that.
But Rabellino insists that Microsoft has gone beyond that and is a good open source citizen. "It's not just about 'doing' open source," he says. "It's about how you do it. We have not just taken something, opened sourced it and dumped the code. We are an effective contributor."
Rabellino points to how Microsoft has helped bring Linux support to Azure in what he deems the right way. "We could have made proprietary drivers, but no, we've open sourced them," he says. The same is true of the way Microsoft has helped bring Hadoop support to Windows and Node.js support to Azure.
Microsoft's 'Humility' Leads It to Embrace Open Source
Has Microsoft genuinely changed from an open source hater to an open source lover?
"Compared to 10 years ago, it's mind-blowing that Microsoft is doing what [it's] doing now," says Wes Miller, a research vice president at Directions on Microsoft. "If you look at open source projects like Hadoop or Docker (both of which Microsoft is involved in), in the past Microsoft would have tried to crush them with its own closed source product."
Why isn't Microsoft seeking to crush this type of project now?
"Firstly, there's a new humility at Microsoft -- a realization that they can't be everything to everyone," Miller says.
In addition, Microsoft is admitting that projects such as Hadoop "do things in a better way, and in a way that the community is endeared to," he adds. "Hadoop is very popular, and although the company tried its own rival technologies, it ended up working with (project sponsor) Hortonworks. [Microsoft is] recognizing the perimeter of its skills."
As well as recognizing that the "best" solution for a given purpose may be an open source one rather than a Microsoft one, there's also the desire to integrate Microsoft technologies into open source projects to benefit its proprietary software business, Miller believes. "Microsoft is choosing open source projects that benefit it in specific ways. A lot of this is about trying to bootstrap Windows development using things that people are familiar with."
If Microsoft Can't Beat Open Source, Might as Well Join It
Mark Driver, a research vice president at Gartner, says that part of Microsoft's motivation for embracing open source software is the notion, "If you can't beat it, join it." He adds: "Open source is the principal delivery mechanism for the open innovation that fuels the Internet, and you can't be considered part of the Internet community if you're outside it."
There's simply no sense in Microsoft competing with successful projects like Hadoop anymore. "Customers are becoming more demanding," Driver says, and they won't put Microsoft on their short list if the company isn't involved in these types of projects. Address the projects, he says, and Microsoft can influence the customer.
Driver also says that Microsoft embraces openness and interoperability in order to gain more traction for Windows Phone, the company's mobile OS, which has struggled to gain acceptance in the market. If developers can use whatever open source software they want to develop for Windows Phone, he says, the mobile operating system may gain the developer support that's crucial if the operating system is to succeed.
"The least Microsoft can do is invite open source developers to the (Windows) party so there isn't a preordained bias to Android," Driver says. "But it wouldn't shock me if Microsoft offered Android as well, as it needs an open source level presence in the mobile market."
Separate Open Tech 'Free of the Anti-Open Source Stink of the Past'
One final question worth is exploring is why Microsoft established Open Tech as a separate entity. It seems odd, especially considering that not all of the open source software projects in which Microsoft is involved emanate from Open Tech. Contributions to Hadoop come from Microsoft itself, for example.
[ Related: Microsoft Open Sources Entity Framework ]
Driver's theory is that it all stems from Microsoft's virulently anti-open source past. "The big mistake that Microsoft made was that it looked at Linux and saw a threat, then saw all open source as a threat," he says. "Now it knows what is and what isn't a threat."
Creating Open Tech, Driver says, is therefore a reaction to a vocal minority in the open source community that treats Microsoft as the eternal "bad guy" for opposing all open source software in the past, he says. "Open Tech is Microsoft's 'demilitarized zone,' which is free of the anti-open source stink from the past."