Why Mono Is Desirable For Linux
Phoronix: Why Mono Is Desirable For Linux
On this Friday we have a freelance open-source opinion article that was written by Ciprian Khlud. This developer, who uses C# among other languages at his place of employment along with a combination of Windows and Linux, argues why the Mono open-source ECMA CLI/C#/.NET implementation is actually desirable for Linux.
Registered just to say how dumb this article is.
This article is so backwards it blows my mind... I started out as a C# developer in the .NET 1.1(if I remember correctly) days. At one point, I realized that Windows was a sinking ship, and decided to learn Linux. Naturally, migrating my C# skills directly to Linux via Mono seemed like the thing to do. WRONG.
Mono, is, was, and always will be a turd. Stability-wise, it's terrible, and if Winforms ever actually works right in Mono, then they will have won the award for implementing complete crap long after it was already outdated. Then there's ASP.NET, which is still a complete joke on Windows or Mono. Nobody in their right mind should want to use ASP.NET, much less on Linux. I even gave Mono another whirl last month just to see how it's progressed, and it took no time at all to crash Monodevelop.
After giving up on Mono, I moved to C/C++ and Qt, and discovered that it is a comparable solution to .NET. Eventually I moved more towards writing web code in Python/Django, and desktop apps in Python/PyQT, and whenever I need extreme performance, I just port functionality to C and call it from Python. Vastly superior to C# on Windows or Linux.
It's worth remembering that C-octothorpe and .NET were an attempt by MS to push C & C++ out of the Windows developer mainstream: thus closing the platform by eliminating all those pesky competing C & C++ compiler vendors.
Originally Posted by bornslippy
I'm not too convinced with the legal attack scenario presented in the article. If someone (and I think 'someone' means M$) sues Xamarin and forces the removal of some functionality things aren't so soft: finding an alternative technology to reimplement some of the application's components in general isn't an easy and trouble-free task. Said this there's another thing missing: if this scenario happens, I'll have to ship as soon as possible a new version of the application to all my customers, because a simple 'apt-get upgrade' (or Windows update equivalent, i think that .NET is installed system-wide even on Windows) could lead to total breakage (and anyway, i can't force them to use an outdated version of mono/.NET because of obvious security risks).
Sorry for the bad english. I've not the intention of bashing Mono, personally I like Java and .NET, but really I can't trust Microsoft. We need the certainty that Microsoft will not try to harm Mono in any way.
I do think Qt is much safer from a legal standpoint.
That being said, Mono is very important to Linux. It might not be the best for business applications, but I think it is the best for games. Just look at games like World of Goo, Atom Zombie Smasher, Bastion, SpaceChem, etc.. Gorgeous games written by a very small team of developers because they fully leveraged the capabilities of a high level language that is C# and mono. Mono is *very* important for cross-platform games from small companies.
The "legal attack" argument isn't even the biggest problem.
The biggest problem is that Windows is and always will be the prime platform, and Linux is and always will be the alternative platform, a day late and a dollar short. Until C#/Mono is SOOOOO accepted that Microsoft essentially loses control, the way that they have with Win32, developers will want to stay at or near the leading edge. That leading edge will always be Windows, and that's where the new development will be done. The Linux version will follow, probably by enough time that by then the new Windows version will be out.
That means that co-development of Windows and Linux versions just won't work. The new version will always be Windows, and it will be a question of how much resource to apply to port the previous version to Linux.
The scenario I see for "legal attack" would be if the Linux version gets too "uppity" and gets too close or even ahead of the Windows version. I think Microsoft is content to have a Linux version available - as long as the Windows version is squarely out in front by a comfortable margin.
hmm. Firstly, I felt like this article should have been edited for fluency by a native speaker, because it was difficult for me to sit down and force myself to read it, and I gave up towards the end. This is not a comment about the author by any means, it is just a realization of the fact that reading technical material requires enough brain power as it is, that having to figure out the meaning of each sentence makes it tremendously harder.
But, more on topic, I do believe Mono is important. I don't care about the .NET framework. For the purposes of this discussion, I believe we should straight up ignore .NET for Windows. I believe Mono should be treated as a separate entity. The tools are actually pretty good, and when you target Mono, your code will run on Linux, Mac, and even Windows. Plus, the performance is much better than Java, as seen in the MonoDroid project.
Honestly, I prefer Python or Vala, but I see nothing wrong with C#/Mono... and I see no reason to need a multipage article discussing why the Mono framework is legal, when I've seen no evidence to suggest it isn't legal.
Sorry, but where did you get the information that World of Goo and Bastion are made with Mono?
Originally Posted by Sidicas
Bastion definitely IS a Mono game.
Originally Posted by mdias
The MonoGame.Framework.Linux.dll in the Bastion install folder is a good hint.
just because, obviously, C# is the only high level language, only C# allows small teams of people to create games.
Originally Posted by Sidicas
Oh wait! Java is a high level language!
Oh wait! C# was created with the intention of being java cloning for windows.
Oh wait! Minecraft was written in Java.
As for the author of the article. "...Uses C# among other languages"
Question: Why would you use C# if you could use anything else at all.
(Obvious) answer. Because someone pays you to do so.