Some members and contributors have expressed concerns over the current state of open source in .NET, as covered last week. To get a deeper perspective on the situation, InfoQ reached out with Phil Haack, former program manager at Microsoft and currently engineering manager at GitHub. Phil was also the track host of “Incredible Power of an Open-Sourced .NET” at QCon.
Phil began by describing the current transformation of .NET OSS:
I think a lot of the frustration with the .NET OSS community is the fact that compared to other OSS communities, it’s relatively young. Although it’s improved a lot and is continuing to improve, there’s a lot of inertia to overcome. For a company the size of Microsoft, its rate of change is actually impressive. But the impact of that change will always lag behind. After all, a lot of people are still angry about IE 6 and its demolishing of web standards, and that came out 15 years ago!
Traditionally, Microsoft had to have its own product in every space. In part, its customers demanded it. The old adage “Nobody ever got fired for buying IBM” equally applies to Microsoft.
However, it’s changed in recent years as it began to realize that OSS is the future. For example, they investigated the possibility of building their own DVCS, but came to their senses and simply adopted Git wholeheartedly. Likewise, they had their own distributed cache but then switched to Redis. They also contribute to OpenSSH. In this regard, Microsoft has started to not only adopt OSS, but contribute to it.
They’ve also converted a lot of their code to open source as evidenced by the fact that MSBuild, ASP.NET Core, .NET Core, etc. etc. are all open source and on GitHub. But it’s going to take time for the impact of this sea change to really pan out. Now is the time for a truly innovative .NET project to have a chance to succeed because if it becomes a standard and is something Microsoft doesn’t already have, but needs, Microsoft becomes a potential sponsor.
Open source project sponsorship is one of the main concerns brought up by several .NET contributors. They claim that while some enterprises use open source projects extensively, they do not contribute back. Phil responds :
The problem about saying enterprises do not contribute back to projects is how do you measure it? Nobody can put forth any data that suggests this is true or not. My hunch is that this is a problem in every OSS community. Just look at all the security vulnerabilities in openssl and how under-funded that project is and it’s used EVERYWHERE.
We need more research on this. I’d bet there’s an average ratio of number of users that use an OSS project to the number of companies that contribute to that project. For example, suppose for every 1 million users of an OSS library, one company sponsors. Given the small size of .NET communities, that would mean very few .NET OSS projects get corporate sponsors.
This is a challenge that I think is universal in open source, not just in .NET and is something I’d like to improve. I think we need to help companies see the benefit to their bottom line in contributing back to the software they use. Not only does a rising tide lift all boats in this case, but it’s a great way to build up solid engineers as contributing to these projects is often more challenging than their day to day work. It’s also a morale booster and can provide great PR. As an open source community, we need to do better in teaching companies the benefits and how to effectively contribute back.
While Microsoft now embraces technologies it did not create, opening the way for outside projects, it still has a key role to play in .NET open source. Phil explains the link between the business strategy of Microsoft and .NET OSS:
I think it’s important to look at the long play of Microsoft. Their Windows and Office businesses are going strong. However, as more and more people embrace open source, web, and mobile, the power of these businesses to sustain Microsoft long into the future will diminish. Their ability to make money selling applications, libraries, and frameworks will follow the same path. I think Microsoft’s business of the future is Azure and its associated services, which suffer less from the commodifying effects of OSS. From their perspective, who cares what you built it with, as long as it runs on Azure!
This is why we see OSS being embraced right from the top (Satya Nadella) on down. It’s not a PR stunt. Nobody would bet that much money, time, and infrastructure on PR. It will take some time for this sea change to reach the shores of the average .NET OSS project, but it will.
For example, C# repositories on GitHub outpace the average and are one of the fastest growing languages on GitHub. We’ve seen a pick-up in new users who use Windows as their primary operating system. .NET open source is certainly not stagnant on GitHub; it’s growing rapidly. One of the projects I help maintain is Octokit.Net, a client library to the GitHub API. It’s a relatively small and obscure project, but we’ve had a lot of active contributors lately. It’s really picked up.
Phil concludes:
So yeah, .NET open source isn’t as big, strong, or as healthy as some of the other communities. But it’s closer than most people think and actively growing. I think the big effort going into the future is to educate companies about contributing back, but that’s not solely a .NET problem but a larger OSS problem.