Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
What's So Evil About Mono? (linuxtoday.com)
18 points by bdfh42 on Oct 7, 2008 | hide | past | favorite | 15 comments


My problem with mono is that few apps are really compatible with it unless they were designed specifically for mono. Yet the existance of mono in any state allows microsoft to advertise .NET as cross platform. Look at what happened this some with nbcolympics.com as a warning of the danger.

Besides Sun really has a cross platform ecosystem with 1st party support of Linux and it is not that embraced, why bring another stack in that is inferior? Mono provides little that Java doesn't and there Linux support doesn't make you feel like a 2nd class citizen.


> Besides Sun really has a cross platform ecosystem with 1st party support of Linux

You may think so now, but for a long time, Sun didn't allow distributors to include Java in their repositories. If you wanted Java, you had to go download it yourself. And all your users did, too, whether from Sun or from the JRE you bundled with your app. In other words, if you chose Java, you also chose bloat and a tiny userbase. Not to mention, Java is a second-class citizen on the Mac. You never know what's going to happen between Apple and Sun.

Another obvious candidate, Python, was already on everyone's machines. But to be cross-platform, you have to code carefully and ask your users to find/install GTK2 and dependencies on Windows. With Python, the bloat (from a user's POV) is only confined to Windows.

Perl is widely available, but not really cross-platform. They're still struggling with Neopolitan Perl to support Windows without relying on the goodness of ActiveState.

So Java becoming useful has been about 5-8 years too late, and it's still beholden to Apple on one platform. Other alternatives also suck, so the FOSS world has continued using C/C++. Without a clear winner, what's the point of switching languages?

And as far as cross-platform goes, even if something was perfectly cross-platform, I wonder if FOSS developers would support it. Projects like Inkscape are torn between the increased userbase from Windows, and the increased tech support for windows that those users would require, when the developers often don't have Windows machines to develop and test on.


I agree with you that Sun will forever be held back by their past actions. Must the same way KDE is still not quite as accepted because of the Qt licensing scuffle - what 10 years ago? However when you look at the success of big complex projects - Eclipse coming to mind first - on Java, there is no equivalent on .NET that really works on every platform.

I too think there will be another language that succeeds C++ in FOSS, and I thought it would be Python, but not so sure now. C will always live on in a lot of the more important stuff like the kernel and basic utilities, but desktop apps will eventually move on. That is a discussion for something else, but I don't believe it will be Java or Mono. I'm just saying that Java is a better system if your primary goal is cross platform. If your primary goal is to build great Linux apps - then it is not.


> They're still struggling with Neopolitan Perl to support Windows without relying on the goodness of ActiveState.

I think Strawberry Perl has solved the pain of installing Perl on Windows. `cpan` actually works out of the box since the installation includes `gcc` and `make`. (I just wish it wouldn't automatically install to `c:\strawberry`.)


Interesting. I see it's finally out of beta. I would even try it if I were still stuck in win32.


"You may think so now, but for a long time, Sun didn't allow distributors to include Java in their repositories"

that's really ancient news that has already changed.

if mono focused more on being a general CLR instead of just some bastard version of C# (that is a good number of versions and features behind), I'd be more for it. Unfortunately I feel that I just gave a pretty good description of it


> that's really ancient news that has already changed.

Yet you still don't find it in e.g. ubuntu-desktop, unlike Perl (dependency: libgnome2-perl) or Python (recommended: gimp-python). Gentoo Portage was written in Python when I ran that, so Python was always installed there. Java wasn't. The underlying reason may have changed, but the effect remains.


C# (and the possiblity of IronPython/Ruby/etc) is a much better language than Java, with many things that make it both nicer and more flexible/powerful to work with. I also must admit that I much prefer the .Net library, and the ability of C# and friends to take advantage of operator-overloading (something you can't do in Java) to actually use helpful syntax elements (such as bracket read/write to dictionaries, etc.).

Besides, I still feel like a 2nd class citizen with Java anyways... I use as few Microsoft products in my daily work/school life as I possibly can, but after using C#/Xna to make a few games in my classes, I was extremely impressed by C# and .Net. It's just too bad Microsoft is so draconian about everything, or else I wouldn't mind having C# as one of my primary languages right next to Python, PHP, and C/Lua...


language design wise C# is better than Java. Unfortunately community wise almost any open source language beats C# in terms of the speed of innovation. The reason: MS (as a whole) still hates and discourages open source projects (yeah codeplex is a good start).

I remember MS trying to stomp out NUnit with an inferior product, and instead of working with NHibernate they just decided to make changes to the language and release their own version - years afterwards... these are just a few examples, but to me it highlights the reason .NET will never be as good in terms of open libraries and tools


krschultz, what kind of danger you're talking about? Just curious.


Over the summer Microsoft was the one providing the technology for nbcolympics.com (Silverlight). Prominately on the Silverlight website it features the words "cross-platform" and "cross-device". But go to the featured use of it - nbcolympics.com - and it would not play on Linux, or even Windows 2000 or Windows ME. Only Windows XP, Vista, and one version of OS X were supported.

Or nbcolympics could have gone with Adobe Flash and everyone could have watched it on any platform. Sure I could install Moonlight (the Mono project's version of Silverlight) but it didn't WORK for Linux. To me if Mono and Silverlight took over the web we'd go to a stage where everyone thought it was cross-platform because Microsoft says so and there are these projects, but people using Linux get a terrible experience. Users don't care why that is, they just know it would suck, and Microsoft would hobble Linux for another few years. The Mono project is enabling that, and that is why a lot of people who are FOSS contributors don't like them. Myself included.


"... The Samba project, like Mono, provides a cross-platform alternative to closed Microsoft technologies. It is equally vulnerable to the (increasingly toothless) Microsoft patent threats and arbitrary changes in the protocols. Yet Samba is admired ..."

It's not evil, just !C. Part of the reason I have problems with Mono is the choice of language the libs are written. The applications are first rate but I hate the fact I have to download a bucket load of extras ( "in the past - it comes standard with Ubuntu" ) to run say great bits of software like Tomboy. It rubs against the grain of gnu's C bias ( "are there mono-bindings for c-based apps?" ) Now Gnome desktop and it's libraries created by the same team thats another story.


You might find it interesting that Tomboy was written in mono with the goal to force a discussion on how viable it was as a platform

I also had a political agenda. I wanted the question of Mono or Not to be brought forward and answered seriously, instead of foundering in the grey waters of FUD. I didn’t honestly care about the outcome, just that there was one. I thought a killer Mono-based app would push the issue.[1]

[1]: http://www.beatniksoftware.com/blog/?p=84


I tried mono myself this summer for quite a complex web front end/back end application written in .Net on Windows. What I found was:

1) the core mono libraries are extremely good, I was able to drop the binaries on Linux and get to work immediately 2) projects on top of the core libraries and requiring integrating with other services (web servers like Apache, nginx) can turn out a nightmare. While I managed to setup everything on Cent OS and Ubuntu, nothing was really working as it should

So, personally I'm a big fan of mono and already looking for trying some winforms stuff there, but ... mono needs more resources I guess to get polished


If you're an end-user or a vendor with .Net portability or coexistence requirements, then nothing. You simply want Mono to work, and to work right. Or you're porting code out of .Net.

If you're not using .Net, then most folks don't care about Mono.

Or you're a partisan of some flavor, and of which we seem to have a surfeit.

Nothing to see. Move along.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: