Well
When a girl is 19 and she applies lipstick it's kind of nice, there is something in her eyes, but when she is 35 there is not that same feeling any more.
In keeping with its plan to release all of its .Net Core development platform as open-source software, Microsoft on Tuesday published the code to CoreCLR, the .Net Core code execution runtime. "CoreCLR is the .Net execution engine in .Net Core, performing functions such as garbage collection and compilation to machine code," …
Something that isn't really addressed is what they see as the user market for this. It's not going to increase the market share of Dotnet on Windows, and outside of a few niches (mainly games), Mono has had little success on Linux over the past decade (other than Android games), so what is it they are trying to accomplish?
The one application area that they mention is ASP Dotnet server applications (I'm discounting console apps). Despite Novell pouring money and support into it, Mono failed to attract any interest in the Linux server market. Apple is irrelevant when it comes to servers, so it's the Linux market that Microsoft has to succeed in here. I can't see why they would succeed where Novell failed.
I haven't heard of any significant interest in the Linux world in C#, Dotnet, ASP Dotnet, or anything else related to them. The only people who seem to express any interest are developers who only know stuff that says "Microsoft" on the package, and who want to get away from Windows. But why would Microsoft want to do that?
Do Microsoft think that Windows is a legacy platform that has no future in "the cloud" and are trying to carve out a niche for themselves by porting their stuff to Linux? Are they doing it just because "open source is cool" and they're tired of staring out the window and watching the big boys playing with all the cool big boy toys and they want to join in?
Whatever the strategy is here, I'm at a loss to understand it.
>Whatever the strategy is here, I'm at a loss to understand it.
Its about the developers.
Say you're an MS dev. You want to do cloud, but Azure isn't really going places fast. Why not do .NET (stay with MS) so you can deploy to Linux and Windows?
The upside for MS is that you stay with them, rather than jumping ship. It gets MS tech into Linux clouds. Rather like free Windows 10 for personal use, it gets MS into a game where they currently have no traction and no hope of revenue anyway. Giving it away for free, even open-source is no big deal for them.
Future revenue is a different matter. Even if fully open-sourced, MS can release the next version with a different license, different features and different "compatibility." Have you seen how fast Vista, W7 and now W8 have been devalued by MS? As a dev, you can then either stay with MS and move to Windows-only or stay with an orphan tech, much as Mono is.
Or you can jump ship and go with tech which isn't controlled by a company which controls so much of the IT environment and has an incentive and ability to pull the rug out from underneath your business plan.
Giving it away for free, even open-source is no big deal for them.
I think that's the main thing - .NET is already free (no money), and .NET being Windows only doesn't make more people buy Windows Server, instead that makes people not use .NET.
.NET is a decent framework, C# is mature and still improving - they're giving it justice by putting it on a decent server OS.
20% of VMs in Azure are Linux - and that's only low because, let's face it, who the fuck is going to go to Microsoft for a Linux machine? Of the remaining 80% (Windows) that they're running, how many of them are doing real work and aren't just freebies used by devs experimenting? Microsoft have now learned first hand what the demand for Linux is like and again they're playing catch up.
"who the fuck is going to go to Microsoft for a Linux machine?"
They have one of the best cloud based Hypervisor stacks and the easiest to use management tools. That's a pretty good reason. Plus they are cheap too. And in general have faster performance than AWS - especially for storage.
"You want to do cloud, but Azure isn't really going places fast."
You must have missed the fact that Azure is growing so fast that it's about to overtake AWS for revenue....Most large enterprises that have any sort of Microsoft infrastructure are already using it or are piloting it...
This post has been deleted by its author
"Mono has had little success on Linux over the past decade"
Incorrect. Mono is now the de-facto development standard for games because, unlike Java, it pretty much is write-once-run-anywhere.
All it takes it toggling a few switches to have the Linux build spat out.
Where people come a cropper, and why no sane person cares about Linux, is that you now have to package it about 12 different ways for 40 different version to deal with all the fragmentation.
Not much point for sub-1% of users, so no one really releases for Linux (and they are unlikely to until the Linux world gets its house in order). Still of worth it for Mac support.
We wanted a way to get a large legacy .NET application working on Mac and Linux. A rewrite was out of the question and Mono came to our rescue. It may have been a lot of work for a couple of percent of the market but it means their competitors are no longer beating them on that front.
The equivalent of Visual Studio Pro is now also available free for non-commercial use and C# has been well looked after. With features added every 2-3 years for the last 13 years that must make it one of the most mature and well maintained object orientated languages out there?
.NET on Linux is a great thing as people with have less worries about lock-in.
@ac sockpuppet - "Incorrect. Mono is now the de-facto development standard for games because, unlike Java, it pretty much is write-once-run-anywhere."
I guess you better tell Xamarin about that, you know the main company behind Mono? Because they say that you need to rewrite your C# apps for each platform, unless they are trivial ones without much of a UI. Their recommended practice requires writing all new UI and platform integration code for each platform, but you may be able to share back-end libraries that don't interact with the user or platform.
Where Mono has found a market in games is where companies had existing investments in games written using things like XNA (which is based around Dotnet) but found Microsoft's licensing policies for the new and expanding market of non-Windows games platforms to be a bit "extortionate" in their view. Mono gave them a porting option that cut Microsoft out of the equation.
As for "de-facto development standard for games", in the mobile and tablet market, it's mainly Objective C for iPhone, and Java for Android.
And if you look at the article, Microsoft is talking about server applications, not games. I can't realistically see people switching to using C# on Linux servers now, because they quite frankly have had zero interest in it so far. If Mono was going to succeed in servers, it's had a decade to do so and a mountain of Novell's money. The Java programmers weren't interested in switching from Java, and everyone else has gone onto Python, Ruby, PHP, Go, Erlang, or whatever else took their fancy. That's why Novell failed with Mono and that's why I can't see what Microsoft expects to achieve with an open source Dotnet.
Because the different product and technology divisions within Microsoft don't want to be bound together into an ultimate gamble where either all have to succeed together, or none will succeed at all. It's the same reason Microsoft want to sell Office on platforms they don't control. If they can get their technology working as well on Linux and Apple platforms this increases the market for services and support, even if they sell fewer licenses on Windows. If the .Net platform is sold based on support as opposed to product licensing they have no reason not to do this.
.Net also competes against Oracle Java, CPython and the GNU toolchain also, but it can't compete as well if it's limited to Windows platforms given these competitors are not so limited. Python runs on .Net (IronPython) and Java (Jython) platforms for the same kind of reason.
Microsoft used to use their control of the OS to make other products than ran on Windows, look bad. They did this with Novell and Netscape. The government had to make them keep to some standard because they were renegade. There is no domesticating Microsoft. They will spoil your rugs anytime that they see an opportunity to exploit you.
Don't ruin his worldview like that. He needs to feel that he is a special freedom fighter, fighting for justice, remembering the evil evil wrong that evil evil Microsoft did (but not remembering anyone else's wrongs because that's not his thing). He thinks running a linux box and using gcc makes him an underground hero.
It's kind of endearing. Like donkeys.
Either there is a play here to get business to their own cloud offering and/or they are planning on porting their backend server software to linux/bsd. If they did the later then developers could build against MS licensed software/tools and no matter where the code ran they could would get some license revenue. Making the runtime/api stack opensource makes it possible for the binaries to be available in a distro's repositories? That way any cloud service provider wouldn't have much in the way of extra work to provide the MS stack that their server software would presumably run on? I'm just guessing though.
I still don't think they'll be all that successful at it, but at least it kinda makes sense in that context.
Ugh, don't. Having large applications, pre .Net days, when one would try to force in-built garbage collector to run by all sort of jiggery-pokery was nothing short of a nightmare.
When one has a linked list or binary tree in VBA of over a quarter of a million nodes and trying to get the MS in-built garbage collector to work at will was nigh on impossible.
Having large applications, pre .Net days, when one would try to force in-built garbage collector to run by all sort of jiggery-pokery was nothing short of a nightmare.
When one has a linked list or binary tree in VBA...
And of course it stands to reason that the multimode generational garbage collector in the 4.5 CLR is exactly like the "pre .Net VBA" one.
That's what this announcement says to me.
However, this has led to a huge delay in the development of truly cross patform code libraries and dev tools, many of which are free and open source, and have years of proven service and reliability.
Being so late to the party, and with no corresponding offer of free development tools is gong to impress nobody in the corporate world of Enterprise Java that has a massive amount of skilled, experienced people that have worked out the best solutions to most of the common development issues over the last decade and a half.
I look forward to watching the look on the Linux sysadmin's face when told to install version 1.0 of this on the comapny's mission crtical production servers.
I can see what you're getting at except that Java is a pile of buggy, insecure filth with ugly constructions and a "write once, fix everywhere" policy. .NET actually works. Of course, how well it'll work on linux and MacOSX and how much fixing needs doing is as yet unknown but seriously, it can't get much worse.
And Larry Ellison is not involved, which is a bonus.
You're conflating Java the language and Java that thing wot runs applets. Applets are dead, they've been dead so long they smell funny. The only thing that surprises me about this is that some people haven't noticed.
There are bugs in Java, I've filed a half dozen reports over the last five years or so, but they're largely all edge cases.
"There are bugs in Java, I've filed a half dozen reports over the last five years or so, but they're largely all edge cases."
You must have missed the hundreds of critical vulnerabilities fixed without fail every quarter in Java updates. Versus a number of holes in .Net I can count on my hands.
oh yes, I forgot that MS are a branch of the NSA and that obviously all software released under the GPL is so virtuous and holy that the NSA cannot approach it without shrivelling up like a vampire in the sunlight, BEGONE IN THE NAMES OF LINUS, AND STALLMAN AND ESR I COMMAND YOU
Yeah. Totally.
i think we found another donkey.
of course, if it worries you, it's on GitHub using the MIT license (RTFA) so you can go look for yourself.
> Being so late to the party, and with no corresponding offer of free development tools is gong to impress nobody in the corporate world
Visual Studio Community 2013 is free and on their site it even says its for "developing cross-platform solutions", As far as I can tell, it has most of the features of VS2013 Pro. Get back in your cave.
While I like Java, coming from a C++ background I have to say C# is just nicer IMO. On the other hand, the standard libs and de-facto standard Apache Commons are better for Java. So it's a bit of a toss-up really. Either way, C# as a language is very good indeed.