He was pretty cool and genuinely trying to advance OS within Microsoft but said it's a pretty frustrating experience overall (his descriptions of the internal processes at Microsoft were pretty interesting). Seems like they have come a long way since, I hope he's still working there. I should have his card somewhere at home :)
So as far as I know there have been developers who were pushing to open source a lot of infrastructure/language stuff for quite some time.
Edit: I think it's no coincidence we see this happening now that Ballmer is gone. He was kind of the villain in the "let's open source stuff" stories I heard.
The move to open source has been in the works a long time and appears (to me at least) as part of Ballmer and Gates long term strategic plan for the era when they were no longer the largest and second largest shareholders and the company was more beholden to Wall Street.
The new post-founder (ok Ballmer wasn't technically a founder) era at Microsoft has been set up so that Microsoft can operate like a software company again. That means embracing current industry culture. Practices that made sense when software came in boxes and was sold through magazines and connecting meant squawking over POTS, needed to be looked at with an eye toward long term.
Nadella was set up by Ballmer to fall into the pit of success. The super tanker's rudder was changed years ago. The move toward open source is no more overnight than the hardware build quality of the surface.
Edit: Some people give a link to an alterantive download without malware... You know 99% of all Java downloads don't know that, do you?
If a free Xamarin came out I'd jump on the C# boat in a heartbeat, which I guess is what MS is trying to do with all this open sourcing (free software-ifying?).
You can use Monodevelop[1] which is 100% FOSS. AFAIK Xamarin is just Monodevelop with some extra wrappers and custom libraries for cross-platform mobile-development. Feel free to correct me if I'm wrong.
If you're just making normal applications, libraries or web-solutions you don't need Xamarin.
Edit: I say "was" because I used to develop C# and had experience porting C# apps to Scala (so that we could run it on linux, lol).
Secondly, what about WINE?
It's like MFC to Win32.
There's a book, but it's old [1]
There's samples, which are fresh [2]
There's a multi part series on Code Project, but it's old (yet much of it still applies conceptually; samples not so much) Part 1 of 6: [3]
If anybody has a good one-stop-shop and updated source of learning I'd very much appreciate it (I'd love a nicely written book on the matter that's not older than, say, 3 years old)
[1]: http://www.amazon.com/Developing-Drivers-Foundation-Develope... [2]: https://github.com/Microsoft/Windows-driver-samples [3]: http://www.codeproject.com/Articles/9504/Driver-Development-...
Personally, I think that signing all drivers off a single root makes sense, but I am concerned about the EV requirement. EricLaw mentioned before that they don't sell them to individuals, for example.
Inside MSFT there used to be minimal credit for releasing source which was a strong inhibitor in the employee review process. And a gratuitously awkward internal process for open sourcing code with no path for accepting changes/contributions. Attitudes are definitely improving.
The major benefit of this particular move will be when you're working on Windows drivers - now you can see and completely grok what a piece of code does until it transitions into the kernel proper.
Which in that case means that protecting the former "company jewels" of Windows and Office ceases to be less important.
Microsoft realized they were becoming to FOSS as OS X is to Windows and is trying to counteract that. Microsoft's vision is still valid; they want Microsoft technology running every computer in the world.
https://www.cs.cmu.edu/~fp/courses/15122-f10/lectures/25-sal...
It looks like this can be used:
https://msdn.microsoft.com/en-us/library/ms182032(v=vs.110)....
Work has commenced on getting CoreCLR (the official.NET run-time) ported and running on BSD and the following PR's were merged yesterday which add initial support for NetBSD and OpenBSD:
https://github.com/dotnet/coreclr/pull/453 https://github.com/dotnet/coreclr/pull/470
The "port team" is organzing work via the following issue:
https://github.com/dotnet/coreclr/issues/455#issuecomment-82...
We are looking for more people to help out, if this is of interest then please goto above and say Hello ;-)
Basically many teams are still on TFS versus GIT and will take some time to move over. But once they're moved over GitHub and their internal stuff will be treated more like separate branches and there will be good, useful history instead of simple bombs from TFS.