LWN.net Logo

Health Check: Mono (The H)

Over at The H, there is a look at the Mono project, including its history and current status. "And much of the current controversy around de Icaza and Mono surrounds the adoption, or proposed adoption, of Mono as a framework for the rapid development of applications for GNOME, and the proprietorial nature of the technologies that Mono uses. The story is rife with irony, not least because .NET was Microsoft's attempt to undermine Java, and the free software movement had its own issues with the proprietorial nature of Java."
(Log in to post comments)

Health Check: Mono (The H)

Posted Aug 20, 2009 17:26 UTC (Thu) by cyd (guest, #4153) [Link]

I recently installed Ubuntu Jaunty, and was annoyed by the inclusion of 30+ Mono-related packages, all in the service of one application---Tomboy---which I don't use. Right now, it's still possible to remove Mono by hand (though annoying, because it's scattered through so many "cil" libraries). Hopefully, Mono won't become a "core" dependency of Gnome anytime soon.

Health Check: Mono (The H)

Posted Aug 20, 2009 17:51 UTC (Thu) by davide.del.vento (guest, #59196) [Link]

Yes, I hope so. Otherwise we should move to KDE...

Health Check: Mono (The H)

Posted Aug 20, 2009 18:56 UTC (Thu) by nix (subscriber, #2304) [Link]

Of course KDE has a JavaScript implementation in Qt... :)

Health Check: Mono (The H)

Posted Aug 20, 2009 19:09 UTC (Thu) by Sho (subscriber, #8956) [Link]

Hm, your point being?

(If you count ECMAScript rather than JavaScript, Qt actually contains two implementations:
The QtScript interpreter and JavaScriptCore as part of the included WebKit. Work is
underway to eliminate the former, though, and reuse JSC for QtScript. I believe the library
providing the GTK+ port of WebKit is an official dependency of Gnome already or will be
one in the next release, so there would seem to be parity on that account down the road.
KDE of course also has its own JavaScript interpreter, KJS, however, as well as JavaScript
bindings to its libraries, both predating WebKit, QtScript and Gnome's JavaScript bindings
efforts by years afair.)

Health Check: Mono (The H)

Posted Aug 20, 2009 20:24 UTC (Thu) by nix (subscriber, #2304) [Link]

I was being pointlessly picky: if your objection was to interpreted
languages rather than to Mono itself, it wouldn't stand :)

... but of course it isn't, because JS isn't patent-encumbered or
controlled by MS.

Health Check: Mono (The H)

Posted Aug 20, 2009 22:17 UTC (Thu) by johnflux (subscriber, #58833) [Link]

Mono isn't interpreted - it's compiled to byte code.

Health Check: Mono (The H)

Posted Aug 20, 2009 22:37 UTC (Thu) by flewellyn (subscriber, #5047) [Link]

And JIT-compiled to machine code, as well. Plus, I think CLR-based languages include a non-JIT machine code compiler as well; I know .NET does, and so Mono may as well.

Health Check: Mono (The H)

Posted Aug 21, 2009 7:14 UTC (Fri) by nix (subscriber, #2304) [Link]

Well, yes, I spoke laxly. To a first approximation so is *everything*,
even elisp.

Health Check: Mono (The H)

Posted Aug 20, 2009 17:52 UTC (Thu) by tajyrink (subscriber, #2750) [Link]

There is also F-Spot by default, which is quite vital application. Personally I think it sucks on the implementation level and was included just for the library-like / modernity factor to appear competitive (marketing-wise) to the proprietary alternatives. But the new 0.6 version (for Ubuntu 9.10) is reportedly better and I could revisit it now if it's ready for my photo collection, is not utterly slow and understands the fact I may do changes to photos it should notice...

There have also been plans about switching from Rhythmbox to Banshee by default, possibly happening in the 10.04 era if Banshee evolves enough. Hopefully it will not be another "F-Spot-like" change, ie. too early, but I've heard rather good things about Banshee lately. I just don't understand why exactly switch from Rhythmbox which is also very capable and has features Banshee doesn't (it goes the other way around as well). It's nothing like GThumb vs. F-Spot. But admittedly Rhythmbox development is not very rapid nowadays.

I would rather go for new Python (or Vala) + Clutter applications than any Mono stuff, though. But those need maturing, and there is the question about requiring 3D accelerator. PyGTK isn't a bad choice either, I'd also prefer that to Mono.

Didn't Tomboy and F-Spot start off as kind of marketing moves for Mono? I mean not black-and-white like that, but started by Novell/SUSE to promote technology that was in their business interests? Nowadays community products, but I wouldn't object someone (like Intel) doing similar promotion to Clutter applications to get something more advanced than what Mono really can offer.

Health Check: Mono (The H)

Posted Aug 25, 2009 10:44 UTC (Tue) by msclrhd (guest, #50482) [Link]

If rhythmbox is going to be replaced, I would prefer it to be replaced by Songbird instead of Banshee.

removing?

Posted Aug 20, 2009 21:45 UTC (Thu) by dmarti (subscriber, #11625) [Link]

Can't you just remove "mono-runtime" and have all the stuff that depends on it go away?

removing?

Posted Aug 21, 2009 9:07 UTC (Fri) by sammythesnake (guest, #17693) [Link]

Yes, you can remove mono-runtime and everything that depends on it, unfortunately, gnome-desktop will depend on those (in order to install them) and will then be removed, too!

To remove what you don't want and not remove what you do want, you'd have to mark the tools you want as not automatic, or something...

Cheers & God bless
Sam "SammyTheSnake" Penny

removing?

Posted Aug 21, 2009 16:52 UTC (Fri) by dmarti (subscriber, #11625) [Link]

But last I tried removing this package on Ubuntu, if you lose "gnome-desktop" you still have the actual GNOME apps and libraries. Looks like the "gnome-desktop" package is just there for convenience to pull everything in on install, right?

removing?

Posted Aug 21, 2009 17:04 UTC (Fri) by jordanb (guest, #45668) [Link]

Yeah, "gnome-desktop-environment" is a meta-package. It depends on everything that Canonical considers 'part of gnome' so you can install everything with one apt-get. Nothing depends on it though.

It's funny how Ubuntu made their description less useful than Debian's by rewording it so that the fact that it's a meta-package is no longer clear.

What About Java?

Posted Aug 20, 2009 18:03 UTC (Thu) by ttfkam (guest, #29791) [Link]

Java has its source published and free. It is more mature than .NET and certainly more so than Mono. It allows an impressively large number of languages to be run on it including Python, Ruby, and at least one LISP variant. Cross platform GUI libraries include Swing, JavaFX, AWT, and SWT, depending on your needs. GCJ allows for native compilation. Applets allow for browser extension. Java Web Start allows for easy web-based deployment of applications. All of these features are easily accessible through a variety of IDEs including Eclipse, Netbeans, and IntelliJ.

If you don't like anything but C or C++ and can't stand anything resembling garbage collection, that's fine. You're likely abstaining from this discussion in any substantive way. On the other hand, if you're outside of this group and looking for rapid development of cross-platform code, why would you push the use of .NET over the JVM at this point?

What About Java?

Posted Aug 20, 2009 19:28 UTC (Thu) by emk (guest, #1128) [Link]

The other interesting Java library right now is Google Web Toolkit, which contains a pretty aggressive Java -> JavaScript compiler, and good support for avoiding memory leaks in the browser. Google has used this for several new projects, including Google Wave and the new AdWords UI.

That said, if you want to run Python, Ruby or Lisp, you always have the option of running them directly, and avoiding the VM.

What About Java?

Posted Aug 20, 2009 21:25 UTC (Thu) by ncm (subscriber, #165) [Link]

If you aren't obliged to run your code in the JVM, it would be foolish to write your code in Java. If you are obliged to write your code in Java, it's foolish to run it in the JVM. If you aren't obliged to do either, it's especially foolish to run your code in the JVM. If you're obliged to do both, I guess it sucks to be you.

Of course all that goes double for C#/CLI.

What About Java?

Posted Aug 21, 2009 6:10 UTC (Fri) by oblio (guest, #33465) [Link]

Now that is an useless remark. First of all you diss Java, and then you diss the JVM.

Both of which are used successfully by many developers. Java might have its warts, but the Sun JVM is probably the most mature runtime out there.

Care to back up any of those claims about Java & JVM, troll?

What About Java?

Posted Aug 25, 2009 15:21 UTC (Tue) by nye (guest, #51576) [Link]

I've noticed a disturbing trend on LWN recently for posts expressing a dislike of something to be immediately and agressively dismissed as trolling...

What About Java?

Posted Aug 25, 2009 23:53 UTC (Tue) by Los__D (guest, #15263) [Link]

While I've seen the same tendencies, the grandparent IS trollish.

It is without substance, more or less just labeling Java and JVM as useless and foolish to use, unless you need both of them, in which case one must be in a world of hurt.

Now, it's witty trolling, but it IS trolling.

The nice parts

Posted Aug 21, 2009 23:15 UTC (Fri) by man_ls (subscriber, #15091) [Link]

Actually, programming in Java can get to be quite comfortable. It's a small language, keywords are quite easy to remember and even the worst coders tend to produce readable (if convoluted) code. Code tends to be quite modular and the one-class-to-source-file convention is very helpful for organizing the modules. And the JVM performance has advanced a lot since the early client-side Java applets -- largely thanks to the huge amounts of RAM available today even on modest hardware.

However, the Java runtime libraries can take you to unspeakable lands of terror, starting with Swing, continuing through J2EE, and finishing in the mires of undead JCRs. If you use a sane server-side framework (like Spring or even Struts) these horrors are kept at bay and just lurk in the shadows. Also, the landscape changes a lot; after two or three years the fashionable frameworks and libraries are unrecognizable.

So IMHO Java and JVM are actually the nice parts.

The nice parts

Posted Aug 24, 2009 14:39 UTC (Mon) by alankila (subscriber, #47141) [Link]

As a java developer I have very different take on the complex horrors that spring and struts
seem to be. I feel that java is refreshingly simple and strongly prefer my applications to be
as simple as possible as well.

I would rather advocate something like Apache wicket. The large monsters like spring may
have their uses, but until I discover a viable case personally, I shall remain skeptical.

Java is a boon for developers because the IDEs are mature, and offer very nice futures like
hot code replace, a feature I have not previously enjoyed. For these robust tools I am
willing to forgive a lot of crap like java's failed generics.

The nice parts

Posted Aug 25, 2009 18:44 UTC (Tue) by man_ls (subscriber, #15091) [Link]

Spring and Struts may be more to your taste or less. I agree that the use of refactoring tools in IDEs is a great feature and should be more widely used. It's not a new thing either -- Kernighan and Plauger advocate it in their excellent 1980's "Software Tools" -- but somehow developers have not put it to common use. At least C developers have Coccinelle now, but Eclipse is much more mature.

What About Java?

Posted Aug 21, 2009 8:37 UTC (Fri) by epa (subscriber, #39769) [Link]

For building desktop applications, you need to compare Mono/GTK# with Java-GNOME. It's not obvious that the Java solution is more mature.

What About Java?

Posted Aug 21, 2009 18:57 UTC (Fri) by bronson (subscriber, #4806) [Link]

> why would you push the use of .NET over the JVM at this point?

Because C# is a much better language than Java right now, and it's still increasing its lead.

Type erasure was a catastrophic mistake. Java programmers still think that acres of getters and setters are a good idea. The JVM may be great but the Java language is in dire need of a refresh.

С# is better, but...

Posted Aug 23, 2009 7:20 UTC (Sun) by khim (subscriber, #9252) [Link]

All these "fatal" flaws are annmoying, but not really all the problematic in practice. But the fact that C# was created by Microsoft is fatal indeed...

The important features of C# are included in Java, and it does not come from company which sues for the use of Linux instead of Windows CE (or is it Windows Mobile now? Or may be... whatever)...

Health Check: Mono (The H)

Posted Aug 21, 2009 19:34 UTC (Fri) by karlzt (guest, #54720) [Link]

there are some typos in the article

Copyright © 2009, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds