I don’t like monkeys in the house April 24, 2009
Posted by claudio in Uncategorized.Tags: GNU/Linux, Java, mono
trackback
There have been some controversy about the .Net clone on Gnu/Linux: Mono.
I have been running Linux before Mono appeared and I remember the discussions. To be short: most reasons to introduce .Net on Linux are clearly bogus today. If you really want to use a high-level language with a VM, well … use Java (there are java-gtk2 bindings if you prefer a more native look than swing-gtk or swt-gtk). If you want to make it perfect, spend a fraction of the time and money of copying/rewriting a full stack (including a VM) and fix what need to be fixed on Java (specially now that’s GPL2). Besides, there are pretty decent IDEs that make you productive . If Java isn’t your cup of coffee tea (It should be as C# looks pretty similar to me), there are tons of other languages with gtk-bindings (I use gtk2-perl).
Anyway, being a user of a minority OS, there was one argument that stuck then: “we will enable thousands of windows programmers to run their programs unchanged on Linux”. I remember the apocalyptic warnings of “jumping on the .Net boat or drown and disappear”. Guess what, it didn’t happen. And it won’t happen. Windows developers prefer to write for the full and up-to-date .Net stack instead of an outdated Linux-clone. Nothing earth-shocking here. As long as the complete stack is not open (libraries), you will always play -incompatible- catchup.
What did we get instead? Beside a few proprietary applications (that can be counted on one hand), we’ve got some tools and applications that mainly run on Linux. Some of them are very nice, but nothing revolutionary that can not be written in an other language.
Do we need to live in fear of Microsofts lawyers for a few applications that can be written in a risk-free language or stack (e.g. Tomboy => Gnote)? To be honest, as long as the OS and my DE (Gnome) don’t depend on Mono, I don’t really care. If Microsoft sends its lawyers, there is always “apt-get purge libmono0 mono-common”. The problem I see is that Novell is pushing really hard to make Gnome dependant on Mono.
Removing Mono in that situation will mean holding the broken pieces of the Desktop in your hands.
Objections about mono being “outdated” would benefit from specific examples. What classes are missing? Mono is really progressing nicely, so technical objections are difficult to take seriously these days.
I think the patent issues are unlikely, but still more credible than the technical objections.
>>Some of them are very nice, but nothing revolutionary that can
>>not be written in an other language.
OK, so write them then. The thing is I don’t want Microsoft telling me I have to code in C#, and I don’t want anyone else telling me I can’t. Java is fine for back-end stuff. But based on personal experience, when I see a java GUI spinning up, I kill it before it kills my system. To be clear, the mono “System.Windows.Forms” implementation isn’t that great (OK, its lousy). In fact about the only GUI solutions worse than it are SWING and OI.
I haven’t tried the java GTK bindings. Can you recommend a good IDE for using them?
Long live Java…
Long live C#…
turtlewaw,
Sorry for answering so late, being really busy.
You: “Objections about mono being “outdated” would benefit from specific examples. What classes are missing?”
I read this in the Mono faq:
You: “I think the patent issues are unlikely, but still more credible than the technical objections.”
I have no technical or copyright objections against Mono. I have the same position as RMS (http://fsfe.org/documents/rms-fs-2006-03-09.en.html#q1):
You: “OK, so write them then.”
That not the point. And the “some of them are very nice” explicitly states that I have no problem with mono programs from a functional point of view (you don’t hear me complaining about being slow or needing a VM).
You: “I haven’t tried the java GTK bindings. Can you recommend a good IDE for using them?”
I like netbeans, but any java ide will do. If you want to draw windows instead of program them, you can use glade. That’s what I use when writing gtk2-perl.
See you,
C.