Microsoft's open sourcing of .Net: The back story

Microsoft's open sourcing of .Net: The back story

Summary: Microsoft's decision to open source more of its .Net platform didn't happen overnight, or even in the past few weeks. It was a move years in the making.

SHARE:

Microsoft's move to open source key chunks of its .Net platform was one of the biggest announcements at Microsoft's Build 2014 show last week.

dotnetbackstory

I've seen a number of Microsoft watchers and users postulating that this move is proof that newly minted CEO Satya Nadella is taking the company in directions that former CEO Steve Ballmer and his leadership team never would have dared go. That's a nice, neat story. But it just isn't true.

(Ditto with the decision to roll out Office for the iPad before "Gemini" touch-first Office for Windows. Word is that decision also predated Nadella's appointment as CEO.)

Soma Somasegar, the Corporate Vice President of Microsoft's Developer Division, told me during an interview at Build 2014 last week that the work around open-sourcing more of .Net began three years ago.

Somasegar said management was aware that Microsoft hadn't embraced open source in needed ways. The thinking was that Microsoft should start out by open-sourcing higher levels of the .Net Framework at first, and then consider gradually move down the stack. But there were debates about whether Microsoft should actually take contributions from the community, as is expected under most, if not all, open source licenses -- or simply make the code available for viewing but not modification.

Mobile-tool maker Xamarin, with whom Microsoft was partnering (rather than fighting/fearing, as some inside the company did initially) was a key advisor, Somasegar said. Some inside Microsoft were initially leery of Xamarin's goal to help .Net developers write apps that worked on Android and iOS because those platforms competed with Windows. But over time, Microsoft became more friend than foe to Xamarin -- so much so that rumors are continuing to swirl that Microsoft may be negotiating to buy Xamarin. (At Build last week, neither Microsoft nor Xamarin officials would confirm or quash those rumors.)

Xamarin officials never pressured Microsoft to open source .Net, Somasegar said. However, they did "influence us around getting the community involved," he said. Xamarin did, however, want more information about .Net interfaces and related documentation, Somasegar acknowledged.

Among the .Net technologies that Microsoft is open-sourcing is its "Roslyn" compiler, which is the foundation for future versions of Visual Basic and C#. Microsoft's announcement last week means all future iterations of these compilers will be open sourced under an Apache 2.0 license.

A year ago, Somasegar said he began talking with Microsoft Distinguished Engineer and Roslyn lead Anders Hejlsberg about whether and when Microsoft should make Roslyn available as open source. In the fall of 2013, the decision was made to open source Roslyn once it was in preview/end-user shape (which happened last week) and to accept contributions from the community, Somasegar said. Somasegar championed the idea of creating a separate foundation, the .Net Foundation, dedicated to overseeing the new open-sourcing effort.

Somasegar said he spoke to Nadella a year ago, when he was still heading up Microsoft's Server and Tools business (prior to becoming CEO) about the Developer Division's interest in making more of .Net open source.

"He (Nadella) said back then, if you think this is good for devs, go do it," Somasegar said.

Scott Guthrie, who is now the Executive Vice President in charge of Microsoft's Cloud and Enterprise business, also was a key propoonent of the idea from way back, Somasegar confirmed.

So will Microsoft take the next step and open source the core of .Net, including the Base Class Libraries (BCL) and Common Language Runtime (CLR)?

"We are taking it one step at a time," said Somasegar. "If it's truly beneficial for us and for the community," Microsoft will consider it, Somasegar said. But there has to be a proven need, he emphasized. For example, Microsoft provided Xamarin with the BCL documentation late last week given that company's proven need for it.

I have to admit that I wasn't sure if Microsoft's decision to open source more of .Net would be met by cheers or jeers by those attending Build last week. I was curious if developers might see the move as an indicator that Microsoft no longer considered .Net valuable enough to keep in-house as part of its collection of crown jewels. Most of the devs with whom I spoke at the show seemed upbeat about the move, however.

Hejlsberg told attendees of a press panel during Build that Microsoft is not abandonning .Net.

"We are actively investing in .Net going forward," Hejlsberg said, in response to an audience question as to whether Microsoft was putting .Net on the back burner.

"It's not going away," Hejlsberg said. "We are all in on .Net."

 

Topics: Open Source, Microsoft, Software Development, Windows

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

67 comments
Log in or register to join the discussion
  • Do not trust MS, this is new mono all over again but this time for phones

    MS only open sources half of .NET this means that it gives inferior products under leadership of likes of Xamarin and if you want the real .NET capabilities you have to exclusively develop for MS platforms!

    Xamarin = remember that traitor Miguel de Icaza who wanted to pollute Linux with mono crap and when failed, bashed Linux altogether and said how good mac is!
    T0rpid
    • Microsoft's open source strategy

      ...makes complete sense. The way they are doing it allows them to obtain enough input to implement the features that makes sense for the community without loosing control over the technologies. Microsoft's .Net MVC is the perfect example. The solution is grabbing more and more interest. It's very good, well documented and the tools that developers needs and ask for are implemented in it.

      MS doesn't need to fully open source .NET What they are doing is a third way between proprietary and Open Source projects.
      gbouchard99@...
      • I want to know the bigger strategy.

        For Microsoft, the future is not WIndows. It's clear with 8.1 consumers have not bought into their strategy and with the latest enhancements it's clear Microsoft is back stepping on Windows.... They new a new, innovative OS. A new OS under a new non-Windows brand name that looks and feels entirely new and maintains backwards compatibility though 1.) emulation (as Mac OS X did when it was first released) and 2. The .NET Framework. For those who remember the leaked docs, part of why .NET Framework even exist today is because Microsoft needed a strategy to have a platform on top of Windows in case the DOJ broke up the company during those hearings in the late 90s. It exist as a platform on top of a platform and it is THE Enterprise platform.
        Jeremy Deats
        • LOL

          Blimey, do you actually believe the nonsense you type?
          Dotnet (with C#) was there to combat Java and JVM mate, absolutely nowt to do with DoJ.
          Lay off the weed mate. Dotnet more broadly was a coming together of many technologies to embrace the new love MS had with the Internet.
          And if you think Windows isn't going to be around for a long time in big numbers, then you are even more deluded than I first imagined.
          hwangeruk@...
    • Pollute or Improve

      I think he didn't want to pollute and rather liked to improve Linux by bringing the CLI technology to the platform. I also think that people like Stallman, who make it no secret how much they dislike it, are wrong in being so suspicious about it. After all, C# and the CLI are open standards and everybody is allowed to implement them without limitations. The problem with Mono in the beginning was that they wanted to create a pendant to .NET and wanted to make it as much compatible to it as possible, which possibly lead to patent issues in the past given the fact they actually reimplemented parts of the BCL which are not covered by the standard. If they went another route and created an independent implementation of their own from day one, things might be different and Linux could have benefit a lot from it.
      sevenacids
      • Curiously enough...

        ...Richard Stallman was one of the first people to call for an open source implementation of .NET.
        John L. Ries
        • I'm sure that RMS...

          ...never used the term "open source." He hates that term. He very likely said "free software."
          harry_dyke
          • Agreed

            But I was speaking to a wider audience.
            John L. Ries
          • There was a GNU project to do a .NET-alike

            called DotGNU, and unsurprisingly, it is stuck in the same mire as most GNU projects seem to be. They've advanced nowhere near as far as Mono did.
            Mac_PC_FenceSitter
          • Some of them make it, some don't

            R (originally a GNU project) is going great guns. GNOME (the GNU Object Model Environment) was also originally a GNU project, and there are others which have done well. But success tends to be governed by how much interest there is in working on a project. It's also possible that in the case of DotGNU, that the FSF decided to shy away due to patent concerns.
            John L. Ries
      • Tradeoffs

        .NET is an abstraction layer or virtual environment serving exactly the same purpose as Java. In both cases source is written and compiled to run on this virtual machine, CLI for .NET and JVM for Java. The goal is a common target for development so that one development effort is all that is needed to run on multiple platforms, no tedious and error-prone porting required. A grand concept, but the devil is in the details. The underlying CLI or JVM implementation must actually translate and run the programs on the underlying hardware and OS. If the CLI/JVM implementations differ from platform to platform, then there is a problem. Even if they are identical on all platforms there is still a performance penalty, and that has been an issue all along, that the unified development environment comes at the expense of performance.

        The other major issue is that there are numerous versions of each, and all are in use at the same time. Developers are inadvertently pressured to code to the lowest common denominator.
        Jaybus
    • Lame

      Linux (or rather gnome) does have mono in it. bTW, you know mono is just a development framework right? It isn't voodoo or dark rites or incantations to Baal or anything.

      Besides when did Linux people start hating Macs? A Mac basically runs a really nice BSD distro.
      Mac_PC_FenceSitter
      • A Mac basically runs a really nice BSD distro.

        Exactly.
        d20dad
        • nice BSD distro?

          I wouldn't call a distro with an aggressively closed source front end and which can legally only be run on one make of over-prlced hardware 'nice'. A nasty BSD distro would be nearer the mark...
          boycottFUD
    • agree 100%

      benedict arnolds, lap dogs and stooges have no place in the FOSS community!
      LlNUX Geek
      • Not So Free & Open...

        ...if you're limiting contributors to the "cool kids", eh?
        josh.pactor@...
    • Moderation Before Inclusion

      I'm not sure about direct contributions from the community. I think they can accept contributions, moderate it as needed before inclusion because development of a clean, semantic, secure, and well-engineered framework needs to continue and this is how to ensure it because the general public is not known to follow these rules as have been proven on many other open source projects out there.
      techiegz@...
      • malware and remote attackers

        Hi :)
        Yes, it would be a nightmare if .NET was as fully free of malware and as difficult to crack as really Open Source systems.

        Better to keep it as proprietary as possible and limit the amount of contributions from the wider communities to make sure it's as safe and malware free as Windows, Java, Adobe Acrobat and Flash-player and all the rest.
        Regards from
        Tom :)
        Tom6
    • torpid

      Oh dear, you've turned OSes into religions. The sort of attitude that poisons the Internet.
      Miguel was right, Linux lost the chance to become a mainstream desktop. Too many divisions, too many choices. 4 Desktop APIs. That was the intended beauty of Mono to have a nice target runtime and consistent API (yet another). That's why iOS has 1 target, 1 IDE, 1 (real) language. Its a straight line. Linux is a potted path of infighting, choices, messy internals, half baked ideas. Linux is not perfect, despite the fact its your chosen religion. Go now, and pray in front of a picture of Linus Torvalds your one and only god. :)
      hwangeruk@...
      • If Linux was so bad why Miguel was bringing half assed .Net for it

        only when plans failed he spewed BS....I suppose he will do the same thing with Android too after this Xamarin crap fails and MS do not interject money into it anymore he will say how happy he is with iOS( he is an adroit shill and never say Windows or WP directly but instead relies on Apple to bad mouth Linux)

        BTW with this hating for Linux in your words it seems to be more religious for you than me, just saying ;)
        T0rpid