Hacker News new | ask | show | jobs
by WildUtah 4910 days ago
CLR is the runtime to beat

Except it doesn't run on any useful platforms. Java makes the effort to be consistent and good on a wide variety of quality systems.

2 comments

I think MS missed a beat here, if they had pushed for the .Net CLR to be a first class and equal citizen on OS X , iOS and Linux they would probably be in a much more relevant position in the future.
Its an open spec that can be implemented on any other platform that cares. Mono is available on many platforms btw
It's rubbish though.

Not the mono runtime; the fact that there are two runtimes.

The official MS one, and the Mono one, and although they're kind of compatible, in that your C# can be compiled to run on either of them (mostly, sometimes, if you haven't done anything fancy, if you're not using MVC, if you're not using a UI layer that isn't portable, if the version of mono you're using from A is the same as from B ( >_> unity...) ), this is FAR away from the java JVM, where you can ship an application that just runs on all the platforms.

Don't get me wrong, you can do that with C# too... if you use Mono only, and flip off the official M$oft .Net runtime.

...but the mono runtime is behind the curve, always playing catchup to the 'official' runtime, supporting a subset of the features, and everywhere runs different versions of the mono runtime. It's a mess.

You've got to admit, the JVM is 100% superior in this regard.

I suppose you've never had a problem with two JVMs that ran a package but didn't behave quite the same way, to disastrous effect? Or dealt with software that only worked with one very specific version of the JRE that was exclusive from the equally specific JRE required by another bit of software?

To compare Mono to the MSFT CLR and call it rubbish by way of contrast to Java-land strikes me as hilarious. I'll choose .NET every time given that choice...

>I suppose you've never had a problem with two JVMs that ran a package but didn't behave quite the same way, to disastrous effect?

Only at the very limited level of "versions of the JVM before x have a bug that makes this package not work.

>Or dealt with software that only worked with one very specific version of the JRE that was exclusive from the equally specific JRE required by another bit of software?

No, never. I know one should never overestimate enterprise software vendors, but you'd have to try really hard to make something that crap.

>I suppose you've never had a problem with two JVMs that ran a package but didn't behave quite the same way, to disastrous effect?

No, never.

You mean two different JVMs, from different vendors? Who uses those anymore?

I use HotSpot and JRockit. There's performance differences between the two but I've yet to run into something that works on one and breaks on the other.
Well there's weirdness between Oracle and OpenJDK, thought to be fair I haven't had a problem with OpenJDF for a while. I don't imagine it's that unusual to find a server running Oracle JVM though.
This is true, but Mono has always lacked implementations of a bunch of APIs and had not quite as nice dev tools.

If there had been a true first party (i.e provided by MS .Net CLR) for other platforms it would probably have had massive traction.

No, it wouldn't. Let's be honest, people would say it's from Microsoft and not use it for that very reason. Could be better than JVM and still most wouldn't use it. Linus was right, the hatred of Microsoft is a disease, and a lot of people in the open source community suffer from it.
Microsoft cast it upon itself. When you cry wolf all the time, nobody comes to help.

Microsoft can't let go. They can't say "this code is now open and no strings attached". They can say "but not really". They can say "but don't touch anything". Microsoft can't open.

What they can do is okay for consumers. Consumers will download whatever software available and use that. Developers? Hell no. Developers don't trust openness that can be revoked. Because this means their product stops working.

Then how do you explain that with mono? It's open source, but since it used MS's specs, with OS license, it has been vilified by the open source community. The reality of the matter is that while developers like to think they're rational, they're just as emotional as any non-developer. Their decisions are driven by emotions, by their hatred for MS or some other company / technology, hence the disease Linus was talking about.
That would mean that there aren't any .net developers.
I don't think that necessarily true. Maybe it is for "the open source community" in terms of Stalanites.

OTOH lots of people use and love OSS including very profit driven startups and Apple "fanboys". Being able to write C# using Visual Studio under OS X and deploy to Linux would be killer app for a lot of startups and of course whatever stack gets used by the popular startups will be lionised.

>Its an open spec that can be implemented on any other platform that cares.

Which is something a lot different than an a project actively developed and supported on multiple platforms by Microsoft.

Xamarin is OK, but it's tiny (in resources and reach) compared to Microsoft.

Mono supports everything under the sun.
There's no WPF
It uses GTK#. What do you expect, WPF is a Microsoft licensed tech, you can't blame Xamarin for not stealing it. A GUI written to GTK# is portable to ios, Android, OSX, Windows, and Linux, and a bunch more marginally obscure targets. Every platform under the sun.