I wonder how this strategy is going to affect the bottom line of Microsoft. People writing with CLR languages are deploying web apps mainly (or only) to Windows now. They're going to have an option to deploy to Linux soon. This means less revenues from OS and DB licenses, so it looks bad. Do they expect a large number of people leaving Java, Node, Python, Ruby and picking up C# because of the Linux deploys? Those people would probably have to buy Windows and VisualStudio licenses to code in C# in a VM or just ditch Macs for PCs. More desktop licenses could make up for lost server ones but if I googled well a server costs more than a desktop. Or maybe they're playing a longer game: open source as much as they can, hope some network effect builds up, find out how to profit from it. In the medium term they might be losing money tough. Am I missing something obvious?
Microsoft have already announced that Visual Studio community edition is free, which also means less revenue from VS.NET licenses as well. Although VS.NET is not a major revenue source, most of the revenue comes for Server licenses, e.g. Windows Server, SQL Server and other integrated products.
But it's fairly easy to determine what their strategy is, given that they've been open sourcing most things that touches Azure. Azure also hosts Linux Servers and given the world is moving towards hosting on Linux, they're following the trend to stay relevant and appeal to more developers.
Basically this comes down to making the .NET ecosystem more appealing and attracting more developers to Microsoft platform and development tools which will integrate seamlessly with their Azure hosting services and other commercial server products.
>Microsoft have already announced that Visual Studio community edition is free, which also means less revenue from VS.NET licenses as well.
Is it though? I would believe that the people using the community edition are the same people that were previously using the express edition, i.e. hobbyists and students who were not going to pay for it anyhow. And as you already described in your last paragraphs: if their plan works out, I would imagine visual studio license revenues to go up in the long term as more people are attracted to the eco-system.
This might be the answer, but it's going to become part of distributions so I could run .NET on Linux on AWS or on my own VPS hosted anywhere. I can't see any reason why Amazon won't provide a Linux .NET image to boot from. Obviously MS can try to provide better and faster images for their Azure servers, maybe even their own distro. I can't wait to see Microsoft Linux Server 2018 :-)
Prices for cloud servers are falling, so do they really plan to take part to a race to the bottom? I remember this discussion from November https://news.ycombinator.com/item?id=8582096
> Additionally, full-blown Visual Studio is totally free now.
Not exactly. Anyone inside an "enterprise organization" (according to Microsoft's arbitrary definition) is even worse off than before, because Microsoft won't be releasing the Express editions any more.
Here’s how individual developers can use Visual Studio Community:
- Any individual developer can use Visual Studio Community to create their own free or paid apps.
Here’s how Visual Studio Community can be used in organizations:
- An unlimited number of users within an organization can use Visual Studio Community for the following scenarios: in a classroom learning environment, for academic research, or for contributing to open source projects.
- For all other usage scenarios: In non-enterprise organizations, up to 5 users can use Visual Studio Community. In enterprise organizations (meaning those with >250 PCs or > $1 Million US Dollars in annual revenue), no use is permitted beyond the open source, academic research, and classroom learning environment scenarios described above.
> Not exactly. Anyone inside an "enterprise organization" (according to Microsoft's arbitrary definition) is even worse off than before, because Microsoft won't be releasing the Express editions any more.
I doubt that there were ever significant numbers of developers in enterprise organizations using Express Editions anyway. If you are doing serious business, the cost of paid licenses (and MSDN subscriptions) is generally justified if you are going to be using MS technologies.
Yeah. Even having a proper shared nothing cluster requires the Enterprise Edition, at like $12k a core. Just to get a slick version of what you can do with DRBD for free.
SQL Server Express is pretty useful on it's own. The only limit is the database size be under 10GB. That's a pretty high limit for a lot of applications.
I never tried C# but I did code in Java with vim and emacs. Not a nice experience. Java more or less requires an IDE. I assumed C# would be the same but I could have assumed too much.
The most annoying thing in Java without an IDE (and a source-control plugin for that IDE) is moving types from one package to another and renaming types. Due to the requirement that the directory hierarchy mirrors the package structure and that every public class is contained in a file with the same name this can be a bit annoying at times. Otherwise C# is much more concise for many things but apart from that there isn't much difference, at least for me.
There were some potential solutions (like billing SPARC servers and workstations as "Java development/deployment platforms") that Sun started to brush against, but they ran out of time / money / distance from Oracle's sidaM Touch, etc.
Java actually did/does make them money, most obviously through the Ask Toolbar bundling deal (which is why they still desperately cling to it even though it trashes their reputation and people hate it).
They also get commercial support contracts from it.
And they got money from licensing various trademarks, test suites, J2ME and so on.
But yeah - ultimately Sun weren't able to build a killer business out of Java. They had a variety of small revenue streams but nothing that could compete with Windows.
Making ASP.NET Windows Server only wasn't driving Windows Server sales, it was destroying Windows (and Visual Studio) as a developer platform, and thus, ensuring that no one had any motivation to develop for Windows Phones and tablets. It was a certain path to irrelevance.
Making ASP.NET Linux deployable ensures that Windows stays in the hands of developers. Making Azure Linux friendly ensures that Microsoft can take a slice of that market. And pushing Universal Apps and giving Visual Studio Community and Windows 10, an OS that allows Universal Apps to run on the desktop, for free motivates developers to fill up the app store.
This decision was inevitable and IMHO a huge step in the right direction.
I had to google what Universal Apps are (Windows is a very remote technology stack for me), got it now.
About the .NET on Linux move, so the strategy could be to make more people willing to develop with .NET, bet that they buy VisualStudio, which means Windows desktop licenses and be prepared to see Windows Server replaced by Linux instances running (hopefully for them) on Azure. For that to work they must be bold in selling Azure and luring developers to the .NET stack. I don't foresee developers leaving their 5/10 years investment on other stacks en masse. Maybe new developers will consider .NET as a viable alternative to all the other open source tecnologies. It's a generational gamble and it's going to pay only if they really can compete against AWS and the other VM providers.
However I understand that they must do something, or they'll end up as the company that makes a console and an OS for video gamers and for cheap computers.
Is Microsoft actually putting resources on a Mono replacement for Linux and Mac? My understanding is it's still Mono for non-Windows which has had very limited success. Xamarin is mostly concerned with mobile.
As far as statically typed languages go C# is actually great. If I had the option of using it instead of some gimped version of it then hands down that would be my language of choice.