
Mono outpaces Java in Linux desktop development - aj
http://www.sdtimes.com/link/33597
======
thwarted
Both use lots of memory though. Tomboy.exe, which is a note taking app,
currently has a VM size of 386meg, 33.8 of which is resident. From looking at
/proc/../maps for this process, it looks like most of it is taken up with Mono
.dll files, which, while it's good these are mmap'ed and sharable libraries,
ain't much being shared since this is like the only popular Mono app. It looks
like every Mono .dll is being loaded for this program.

But this reminds that I wanted to remove Tomboy from my panel since I don't
use it and it has some serious reliability and UI issues.

~~~
I_got_fifty
It's amazing how much memory Tomboy uses. It's waay too much for a note-taking
widget, that I barely use. It's crazy.

Someone should totally re-write it in C. Or Java ;-)

~~~
Raphael_Amiard
It's being done : <http://gitorious.org/gnote/mainline>

Although i'd say this is going backwards. Improving Mono/TomBoy memory
consumption feels more like the solution here, even if it's a bigger job

------
I_got_fifty
Has Java ever been big on the Linux desktop? Vuze is the probably only Java
app that I've used for more then four minutes.

~~~
pqs
That's what I thought when I read this article. I've been using linux for
years and I only remember to have used on Java App: jabref.

~~~
jonasvp
Funny, everybody on Linux seems to have exactly one Java app... mine's
jBidwatcher.

~~~
Maxious
I have exactly one too - the jabber server daemon Openfire.

I know it's exactly one because sometimes I want to quickly check if it's
running and that's just a "ps -A | grep java" :P

~~~
axod
or you could just do "jps" :P

------
Raphael_Amiard
Mono certainly aims for better integration into the Linux userspace, at the
cost of portability.

The emphasis of Java on portability / platform agnosticity is one of it's
strengths and one of its weaknesses. It's part of the platform's identity.
Comparing the two platforms about linux desktop development is almost
nonsensical, since for mono, linux desktop apps is the selling point (GTK# is
designed as the main GUI framework for mono, and it gives a native feel on
linux), whereas Java has a much broader audience at the moment.

------
jm4
This makes sense. From the very start, Mono was intended to be used for
creating desktop applications for GNOME. Java has been lousy for the desktop
starting with the decision to use a least common denominator window kit. AWT
specifically excluded widgets that were not natively available on every
platform Java ran on. The idea was that they would blend in better this way.
The result was a sub par window kit that was only as good as what was
available on the worst platform. Sure, we got SWT later, but that still has
problems of its own.

The fact that Java is not terribly useful for creating desktop applications is
irrelevant. Its strength in server side applications has long been
established. Not to mention, Java has kind of become a de facto standard for a
lot of corporate development and those applications are very rarely
distributed. Public distribution of applications written in a particular
language says almost nothing about the level of usage. There are plenty of
other good languages that are not commonly used for desktop applications so I
don't understand why this is particularly newsworthy. It's not every day that
you see desktop applications being developed in Python or Ruby either.

------
krschultz
How can you trust an article with glaring factual inaccuracies underlying the
primary argument?

"Eclipse 3.1 lacks features that MonoDevelop has, including code completion,
integrated debugging, refactoring, and unit testing capabilities, Hargett
claimed."

Are you kidding me?

And then the great "apps" they site for Mono are Gnome Do & Tomboy notes.
Sorry but we're working on visual programming language plugins on top of
Eclipse at my company, and the two Mono apps they site are to-do lists?

I'm all for Mono, I'm all for a discussion on how Sun screwed the Linux
community over, but _this_ article is not worth reading or talking about.
Shoddy reporting all around.

~~~
nailer
Agreed re: inaccuracies, but Gnome-Do isn't a note taking app. Also Banshee is
another fairly complex Mono app.

------
mcu
"It's also worth noting that many of the high-profile Mono applications are
written and maintained by Novell. That's a pretty classic platform
strategy—try to get your platform broader distribution (in this case,
integrated into the Gnome desktop) by creating compelling applications that
require it."

The "Creation of Compelling Applications" isn't a strategy, it's the only
reason that platforms exist.

------
pavelludiq
Just tell me when it outpaces c++. How many mono apps are there? How many c++
apps? Mono has a really long way to go before it can seriously challenge
C++/KDE. I hope not to be misunderstood, moving away from c++ is somewhat a
good idea, but its much too early for statements like this, because how many
java apps are there to be outpacet?.

~~~
blub
>Just tell me when it outpaces c++

On Linux, probably never. KDE/Qt development is really easy.

------
gojomo
I'd never heard of MonoDevelop, and it seems to me this article was really
scrounging to create a sense of its "primacy" that isn't real.

Neither sfbay-craigslist, Indeed, or SimplyHired come back with _any_ job
listings that mention 'MonoDevelop'. Meanwhile, even combining the three terms
[linux eclipse java] gets multiple hits at Craigslist and over a thousand each
at Indeed/SimplyHired.

There's a fair chance that Eclipse itself is the most popular Java desktop app
on Linux. (Developers aren't blocked by outdated Debian packages nearly as
much as the article implies, and the article's claims about what was missing
in Eclipse 3.1 are false.)

Azureus and LimeWire have also been widely-used Java desktop apps, on Linux
and elsewhere.

~~~
kragen
There are lots of people using Linux to develop Java, but that doesn't mean
they're using Java to develop desktop apps for Linux. Mostly they, like you,
are using it to develop server-side web apps, I think.

I think the article is correct that most people aren't choosing Java for new
projects they start. I assert without evidence that the Java job listings you
see are primarily for existing projects. I wouldn't be surprised if _you_
chose Java for a new project, but it seems like most people prefer Python or
Ruby or C# or, for some things, C.

~~~
gojomo
There's not much standalone desktop Java anywhere; it's clunky for that
purpose. But the article is claiming some sort of Mono/MonoDevelop ascendancy
for Linux desktop apps, and that's not in evidence.

For example, I'd estimate the usership of Eclipse and LimeWire on Linux as
larger than any two of the Mono apps mentioned in the article or this thread.

~~~
kragen
Well, there are a lot of people who use Tomboy and F-Spot. I don't know
whether Mono is less clunky than the JVM in practice.

------
trezor
Whatever your feelings on mono is, it's hard to debate the closing statement
of that article:

 _"The Java community has taken Linux for granted," Hargett said. "The
assumption is, 'What else is Linux going to do for managed code?'_

~~~
dschobel
Python actually seems to be fairly popular in the desktop linux space. At
least in the GNOME universe.

~~~
mcu
Writing non-trivial / multi-threaded desktop software with Python is a
debugging nightmare.

I've been a volunteer Banshee dev (~20 KLOC) for about 4 years. With limited
time to contribute I wouldn't be nearly as productive if I had used C or
Python. Without Mono lowering the (time) barrier for entry I probably wouldn't
be a long-term free software developer.

Personally, I'm sad to see JavaScript coming to the forefront with GNOME 3.0.

~~~
cturner
My experience is limited to one application and I used my own hand-crafted
system based on select for this rather than twisted (which I didn't grok until
I'd written my own scheduling model). However, the experience was good (and it
was a joy to debug - very straightforward) so I'll continue here.

If you're writing python apps you're better off using twisted than the
threading system (which in my limited experience is indeed horrid).

Twisted is pitched as being a networking layer, but I find it better to think
about it as a purpose built scheduler which happens to have poweful networking
modules. To explain what I mean by scheduler: - you have a cycle of standard
functions for the application which might handle input, look at the network
for traffic, handle output. Sometimes in the course of execution more
functions will be needed and you stick them into the cycle. So you have an
extra item in the rotation that handles custom tasks. Once you've got a
scheduler model like this you can tweak it to make your application more
responsive if it needs it.

You can use pyinstaller to produce a packaged binary that can be easily
transported between platforms without requiring users to install a stack of
python libraries. If you use wxpython as your GUI the whole thing can be
multiplatform.

~~~
dtf
Those who don't learn twisted are doomed to re-invent it.

~~~
cturner
The problem is that I couldn't learn it until I knew what it did, and it was
only when I sat down after writing that app and writing out a plan for a
generic scheduler library based on what I'd learnt that it dawned on me -
"ooohhh _that's_ what twisted does!" We've been best friends ever since.

