Replying from off-list, pardon the break. At the encouragement of
various important parties on #gnome-hackers, I am posting a copy of this
from my blog in an effort to help focus the Pro/Con-Mono argument. I am
not taking any side. This is only a summary.
So, I spent two hours reading every email sent in April, May and July
about including Mono as an official part of the GNOME platform and
Tomboy as an official application of the Desktop. You might be thinking,
"Two hours is a lot of time to waste on this," but this argument is
really, I think, one battle in the much larger war over whether JIT
languages can be general use languages. Further, there are a lot of side
issues which are complicating this.
Now, first, let me summarize - as objectively as I can - the two sides
of the Mono argument. I have some experience in both camps. As the
gnome-games maintainer, I oversee the maintenance of lots of C
applications (and one Scheme); some of them very hard to maintain. On
the other hand, I have written several commercial GUI apps. in GTK#
using both Glade# and Stetic.
* Pro-Mono people are arguing:
* Lots of cool applications and innovations are happening
in the Mono camp. There's apps. like F-Spot, Tomboy,
Beagle, and Banshee being written way faster than they
could be in C. Anti-Mono folks generally agree but think
that high level languages should only be used for
prototyping (the benefits of RAD don't outweigh the
cons).
* ISV's and corporate environments will benefit from the
Monodevelop tool and the general availability of more
RAD tools on the GNOME platform. Anti-Mono folks
generally agree but argue that being able to install
these separately isn't a barrier to their use for this
purpose.
* Mono needs the GNOME endorsement of official inclusion
to heal the community divisions over it. If we don't
include Mono, the community will split further.
Anti-Mono folks argue that - even if Mono is included -
distributors like Mameo and RHEL are going to
pick-and-choose the parts of GNOME that fit their
requirements (official inclusion really doesn't mean
much in the way of platform endorsement).
* Python is there, so why not Mono? Anti-Mono folks argue
that - in some ways (Deskbar) - including Python was a
mistake.
* Anti-Mono people are arguing:
* Mono applications will use, generally, at least twice as
much memory as an equivalent C application. In some
cases more because of the overhead of the VM. If such an
application were part of the panel, for instance, that
would be a huge drain on memory and start-up times.
Pro-Mono folks agree about the memory figure but argue
that the pros outweigh the cons. Pro-Mono folks disagree
about start-up times and also argue that users will have
to choose to enable those panel applets. Also, deep in
the thread Miguel pointed out that Mono apps. can be
compiled "AOT" which would allow them to share the
"overhead" in the same sense that shared libraries work
in C. (I should also note that some Anti-Mono folks
seems to have had bad experiences with Beagle running
away with their RAM - especially on older systems.)
* C#/Mono is a Microsoft invention and therefore it might
be used as a weapon against GNOME. Pro-Mono folks point
out that this has already been argued against many years
ago and that the argument is closed.
* Mono is just like Java and, despite Java existing for a
decade, no compelling desktop applications exist that
run on Java. This shows that JIT platforms are generally
too slow. Pro-Mono folks point out that the freeness of
Java has been a factor but, despite this, GCJ/Classpath
is progressing and some counter examples are Eclipse and
Azureus.
* There is a general effort to decrease GNOME's footprint
and including Mono would continue to undermine that
effort. Pro-Mono folks argue that optimizations are good
all around and that, again, the pros of rapid
development outweigh the costs. Also, Pro-Mono folks
point to Evolution as an example of a C program that is
clearly a memory hog.
SO, what is my opinion? Well, probably no one cares and I have to say
that I don't know which side to take, right now. Both sides are making
some compelling points.
What IS clear is that neither side seems to be arguing with very good
real-world examples to back up their performance claims. For instance,
no one mentioned the widely praised (with grains of salt) Shootout
benchmarks of which all the languages in this discussion are included.
Also, Anti-Mono folks keep saying or implying that, before Mono, C was
the only language in GNOME. I would like to remind them that
gnome-games, long included by default on every Linux distribution,
depends on Scheme (the guile bindings).
Attachment:
signature.asc
Description: This is a digitally signed message part