[clug] Why isn't Java popular on the Linux Desktop?

Francis James Whittle fudje at grapevine.net.au
Sat Jul 11 21:50:47 MDT 2009


On Sat, 2009-07-11 at 12:25 -0700, James Ring wrote:
> Hey,
> 
> On Sat, Jul 11, 2009 at 7:43 AM, Francis James
> Whittle<fudje at grapevine.net.au> wrote:
> > My personal feeling is that Java adds another layer of indirection where
> > it's not necessary, and without advantages such as run-time compilation.
> > A lot of effort goes into cross-platform frameworks for architecture
> > compiled languages anyway, so what's the big deal?
> 
> This argument tends to come up whenever the abstraction layer is
> raised. I'm sure people argued that object oriented programming was an
> unnecessary layer of indirection, but I don't think that anybody
> seriously argues that it doesn't provide a level of expressiveness
> that is so useful in so many applications. Very few people these days
> will look at the output of their C compiler to ensure that loop is
> completely optimal.

Don't know about object oriented programming per sé, but certainly,
object orientated languages feel like an extra layer of indirection that
isn't necessary until you look closely.  I personally am quite happy to
write object oriented code in C (and in one of my uni courses blew the
minds of a few people by doing it in m68k assembly too), but can see
where people might need the concrete of actually having a strong written
relationship between an object and its methods.  Even C++ has its
problems (see: class templates - one area where Java is almost
infinitely better).

> In practice writing cross-platform Java applications is very little
> effort compared to the equivalent code in languages like C or C++.
> Sometimes you need the lower level because the performance of your
> code matters, but most of the time it's important for the code to be
> correct and portable and I believe Java is an excellent language
> choice here.

It's interesting that the argument often comes down to what most
benefits lazy people.    Fact is that there's a number of projects out
there that have done a lot of the hard work of enabling cross-platform
code (GLib springs to mind) so that writing a cross-platform application
that doesn't rely on a third party virtual machine isn't as painful as
it might otherwise be.  True that Java has some other advantages like a
unified toolkit, but that's also provider by, say, wxWidgets.

That said, the question was to do with the desktop, and more often that
not people coding desktop applications for Linux are trying to catch up
or mimic applications for other platforms written by people who laugh at
concepts like "cross-platform."  That's where the layer of indirection
becomes unnecessary - why try to compete with an application that
already exists on other platforms?

> > --
> > linux mailing list
> > linux at lists.samba.org
> > https://lists.samba.org/mailman/listinfo/linux
> >
> 
> Regards,
> James




More information about the linux mailing list