What's going on?
What's going on?
Do you think it was anything but the most incredible terror and desperation that drove them to add a Linux subsystem to Windows? To open source their "crown jewel" of .NET? To support Linux on Azure? To make Visual Studio almost entirely free? To adopt Electron as the base for VS Code? To ditch TFS for GitHub?
Edit: Corrected to be more precise Chromium vs. Electron.
In the real world, companies are made up of lots of individuals, all with strong, differing opinions. Some people at Microsoft undoubtedly hate open source. Some of them undoubtedly love it. Many of them are probably, like most developers, somewhere in-between. They have no ideological investment, they just make use of it when it's useful.
Having actually worked in the Microsoft ecosystem in past, I know that there have been people there for years who like open source, and who have pushed to make Microsoft a more open company. There's no doubt that competitive concerns have driven some of Microsoft's embrace of particular open source technologies, but to characterise their entire approach to open source as being: 1) entirely recent, and 2) completely fearful and reactive, has no basis in recorded fact, and does an appalling disservice to the many people who have spent many years (successfully) trying to change Microsoft's internal culture and make it more friendly to open source.
If you're not already familiar with the "Halloween Documents" (https://en.wikipedia.org/wiki/Halloween_documents) then you should take a look. They were pretty much the definition of "fearful and reactive".
Microsoft has historically had an ideological investment in killing everything that wasn't Windows.
Microsoft has been roused in this fashion 3 times before that I can think of.
1. The internet. If you don't remember, MSFT completely misjudged the importance of the internet. A heroic effort by Bill Gates turned the company around and got them on track to seize control of the web (until Google drove them back).
2. Java. It was so successful that MSFT had to create a nearly identical tech stack that they controlled, after Sun beat them in court.
3. Linux. Open source, well supported, loved by tech people, runs on almost every conceivable hardware platform. It's been a herculean effort just to fight for market share. If it weren't for lock-in, MSFT would have gone the way of Solaris and HP-UX.
Now open source is the only way to try to get back that developer mind share that they've been losing for so long. This is a good thing in the long run, but to couch it as anything but "fearful and reactive" is to discount a lot of history.
Seems like quite a straw man argument, there probably isn't a single person that actually fits your description. And it certainly does not describe a typical developer.
As infamously documented in "The Windows Shutdown Crapfest" [1], in order for anything to be publicly observed outside of most large bureaucracies, a large number of people are involved, and their only common interest comes from very high up in the bureaucracy. So you usually do end up with a single, simple ideology presented to the public, even though there are a lot of people internally fighting for different things.
[1] http://moishelettvin.blogspot.com/2006/11/windows-shutdown-c...
A corporation has a power structure which necessarily is independent from any one person. It follows that there is something about corporations which is distinct from its employees. Look at a business as both having employees, who are people, and being a corporation, which is like a golem.
Nobody does risky moves out of the sheer joy of doing them, especially if you have shareholders holding the Damocles sword of share-value over your neck.
You do them, when you run out of options.
"Microsoft’s Open Source Developer Journey"
https://channel9.msdn.com/Events/Visual-Studio/Live-2017/Key...
It's funny because the new generations still use Windows to develop on and Linux to deploy to and no one is denying this. But Microsoft somehow is accepting this shift and is trying to bring its stack on Linux and also Linux on Windows.
I think Microsoft is smart,they really realized unlike Oracle and others that sometimes you cannot people force to use or do whatever you think is the best (looking at you Oracle,IBM,Apple) and literally giving people what they want is the best thing you can do to turn the tides.
Ehh, using Electron to write a relatively lightweight wrapper for Monaco (the editor component that was developed for an entirely different product) was an obvious technical choice if you were no longer restricted to only using Microsoft technologies. There's not a reasonable/supported alternative to Electron within Microsoft.
F#'s compiler and tools has been Apache licensed since, what, 2005?
Even now they are being disingenuous about license changes, witness for example the leadership of this project changing license from Apache 2.0 to MIT and being obtuse about the licensing of patents or about reasoning, not explaining clearly the drawbacks of the change: https://github.com/Microsoft/visualfsharp/issues/3440
OpenJDK happened on May 8, 2007, that's 10 years ago and you've got companies like Red Hat and IBM collaborating on it. By comparison .NET Core was released 2016, so that's 9 years later.
And the JCP might be a farce as far as standardisation efforts are concerned, but at least you've got multiple companies participating.
I'm replying this because I'm getting tired of Microsoft's marketing campaigns on this forum.
UPDATE:
Btw I actually applaud Microsoft's open sourcing efforts, I see myself using .NET in the future and I'm actively using Visual Studio Code and TypeScript at the moment. They've got fine people there working on dev tools, they always had.
But then I also see them engaging in what's basically racketeering, threatening Android phone makers with patents (i.e. if you can't innovate, litigate), having potential for becoming one of the largest patent trolls ever. And I also see them breaking user privacy in Windows 10. Therefore my view of them is balanced, as a large organization the left hand doesn't know what the right does, etc.
I cannot love them and even though I may have forgiven them for their past attacks on Linux and the open web, I can't forget their past that easily. And before you mention Google, Apple, Facebook, or other media darlings, check my history to see that I'm consistently ranting about all of them and the malevolence of one does not excuse the rest.
What I'm saying is that "Microsoft changed" messages make me feel nausea because it's been a clear marketing campaign and people fell for it. Let their actions speak, applaud and reward them when they do good, but don't put them on a pedestal and don't do marketing for them without getting paid for it.
You're comparing unequal things. OpenJDK was a community effort, while .NET Core is maintained primarily by Microsoft themselves. The correct comparison would be to .NET's community based alternative, which is Mono. Mono in turn had it's initial release in June 30, 2004, which is _13 years ago_, and 3 years before OpenJDK itself.
Further, note that Oracle only open sourced Java a year after Microsoft did .NET Core. One might even argue that Oracle only did so _because_ of .NET Core.
I'll note that I'm replying because I'm getting tired of Oracle's marketing campaigns on this forum.
> The correct comparison would be to .NET's community based alternative, which is Mono.
This is disingenuous at best. OpenJDK was started with a huge codebase from the existing Sun JDK at the time, similar to how .Net core was started with with a Microsoft codebase.
Meanwhile Mono had to be written from scratch and was a far cry from being somewhat compatible for years after it started (e.g. capable of running a Visual Studio compiled .NET GUI program)
> Further, note that Oracle only open sourced Java a year after Microsoft did .NET Core
I'm not sure what you mean by "open source Java" in this context. The Java Community Process was started in 1998, and as said OpenJDK started in 2007. Java EE being open sourced like now would be much more comparable to Microsoft releasing something like Windows Presentation Foundation as open source, as it's a oft-used part of .NET but not part of the language per se.
You can read it all here: https://en.wikipedia.org/wiki/OpenJDK
Mono is owned by Ximian, which is now a subsidiary of...Microsoft. This creates the rather odd situation where there are three implementations of .NET, but Microsoft controls all of them.
I just think you're simply underestimating how many people actually like .net and spreads the love by free will. :)
Can you substantiate that claim?
For some reason Java people have a near allergic reaction to it though.
I cringe a little when I need to write the occasional `def foo[T](list: List[T])(implicit tag: ClassTag[T])` in Scala.
It's such a shame that Microsoft until recently kept it so tightly controlled and Windows only. If that hadn't been the case the ecosystem (libraries and languages) might have been a lot more up to par when compared to the JVM ecosystem.
Make no mistake: Microsoft knows very well what its business model is. Sun was very confused in that respect.
It kind of worked for a small slice of .Net programs (e.g., those that didn't rely on WinForms or any other non-implemented part of the stack). That's about all you could say for it for quite some time.
Don't take me wrong I am not saying that Windows / MS stack is better. It's just as good! And that's the beauty of it. I am glad microsoft is embracing other platforms so lets see how other people will react :-)
Oracle has improved it quite a bit and all those features are being worked on for Java 10.
So it is not like everything is better on the other side.
Note that I do enjoy using both of them since their early versions.
The only problema with Swing (JavaFX not so much) is developers coding away withouth bothering to learn how to use them.
Yes, out of the box they are harder to use than Windows Forms, but anyone that bothers to read books like "Filthy Rich Clients" is able to tame Swing.
When .NET Core starts supporting a standard GUI (eventually Xamarin.Forms) than runs in all platforms that Java GUIs run today, then you can complain.
This post is just about JavaEE - a set of libraries for Java - being moved to GitHub.
Don't forget the business community. To a first order approximation, most programmers who get paid to write code work in either C#/.NET or Java. Everything else is a relatively small minority of paid development work.