Ask HN: Why is Mono still not widely used on Linux?
It seems as though one of the initial reasons for not embracing .Net on Linux i.e. ".Net is Microsoft and Microsoft is Evil", now apply to Java since Oracle took over. So why is .Net/mono still not being shown much love?
21 comments
[ 2.5 ms ] story [ 51.9 ms ] threadXamarin. Ximian is, as they say, an ex-parrot.
If you're developing for multiple platforms chances are you already use some other toolkit with platform specific bits mixed in, mono is only useful if you are a .NET developer and then decide you want to port apps.
Enterprises can afford Windows + support. Enterprises love [Azure] cloud.
Linux + Mono is a bit of a bait-and-switch candy from Ballmer.
Linux is nearly universal in enterprises.
So there is some truth to your statement, imho.
I've recently had to port a .Net app to Mono so we can deploy it on Linux - in fact, we're doing everything possible to remove any dependency on Azure, because Azure is an atrocious trap for anyone looking to deploy productively. (e.g. can't clone an instance to .VHD without decomissioning and destroying it first..)
Anyway, mono on Linux is distasteful, in my experience - there are too many dependencies and packages and libraries/subassemblies that just are not well described. Its as much about the affront of the language used in the Mono ecosystem as anything else. Unless you have the gumption to invest weeks in understanding the perverted terminology and strange architecture of the mono packages on Linux, you're going to be dissuaded by its complexity - especially if you're used to an open, well-describe taxonomy of the traditional Linux packages' way of doing things.
Between the Humble Bundles including a lot of Linux ports and the Linux Steam/Steam OS launch from Valve, there's a lot of these ports coming out right now.
Why would a .NET developer use linux in the first place?
I am orders of magnitude more productive using Visual Studio in Windows, but in the grand scheme of things that's a local optimum. I'd like to learn new things, use other tools, etc.
You highlight exactly what I meant " am orders of magnitude more productive using Visual Studio in Windows".
There probably isn't much incentive for you to write in mono on Linux, because you could be so much more productive on another platform.
And if you switch to Linux, it's probably so much easier to open a python shell that setting up a MONO environment doesn't make sense in most cases.
When I use linux, I much prefer to use languages where linux is the "1st class" platform (and not Java or JRE based). Mono is improving all the time, but C# doesn't have the attraction for me outside of work.
It's C++ though :-)
Also, not sure Java was any more or less evil when it was Sun. In either case the question is just one about which demographics the multi-million dollar marketing campaigns behind one technology or another have targeted. Had they decided Linux hackers were going to be their customers then I'm sure that demographic would be drinking the kool aid and wearing the t-shirts instead.
The initial reason for not embracing .NET on Linux is that the entity that created and maintains .NET doesn't support Linux as a first-class platform for .NET.
That remains the case.
Even the entity that maintains Mono, the almost-.NET that runs, among other places, on Linux, isn't really focussed on Linux any more, having moved on to mobile.