

Why Java Sucks - libpcap
http://zef.me/878/why-java-sucks

======
quanticle
>Purity Basically the only proper way to write your software in Java is system
independent; you’re stuck with the common denominator. On the server side this
usually isn’t the biggest problem, but when you do client stuff, you might
want to use the system tray in Windows. No! Thou shallt write pure code! Oh
sorry, I bought this really cool OS that has all those cool features, but now
I can’t use them because that’d affect my purity. Get the f@#$)(#@$*@#!

First, this limitation is true of any "cross-platform" language. If you're
writing "pure" Python, you don't get to use the system tray either. Of course,
both Java and Python have native interfaces (via JNI and C extensions,
respectively), so you do get to use the system tray if you choose to do so.
You'll just need to leave the world of the least common denominator and write
an interface to the native OS.

>In Java not everything is an object (or can be treated that way): there’s
also primitives. Primitives (int, float, char, double, byte, …) are radically
different than objects. The only reason they’re here is for speed’s sake, and
to complicate things more. This sucks.

I do agree with this point. In retrospect, something like C#'s autoboxing
would go a long way towards smoothing over the distinction between objects and
primitive types. I haven't programmed Java in years, though. Does it have
autoboxing yet?

~~~
mhd
I have used Swing a bit more than the author of the article did, and it really
took Sun way to long to improve upon it. Before Java 6 it had some noticeable
gaps and the performance was rather bad. But since then it's not that bad in
that regard, you'll even get your System Tray icons (Sun used to be _very_
conservative about that. If it's not available everywhere, no soup for you.)

And any GUI toolkit is complex. Often this is hidden behind IDE boilerplate
code or GUI builders, but it's there. Once you get the hang of Swing, you're
able to adapt it to your liking a lot (event handling, custom UI elements
etc.). I still remember early X11 toolkits that appeared to be easy, but once
you went beyond their boundaries, it was "drop down to Xlib" time.

Regarding the look and feel: Strangely enough the one platform that cares the
least about that is Windows. Yes, the old Metal L&F sticks out, but once you
stick to the system colors, any differences vanish. The typical user probably
already uses lots of so-called native apps that look differently, as every
Office release has new kinds of toolbar buttons etc, there's still apps out
with huge check marks and crosses on their OK/Cancel buttons etc. The main
issue I had with Swing here was getting the "feel" okay, i.e. drag-and-drop,
shortcuts, the behavior of tree elements...

Of course, on Mac, everything that isn't done in Cocoa looks and feels alien.
It's possible to get rather close with Swing and Qt, but it takes a lot of
effort.

------
minalecs
terribly written article and over 2 years old.

~~~
drivebyacct2
No idea why you're being downmodded. This is a barely, if at all coherent rant
that is a month away from being 6 years old.

Most all of it boils down to "there are too many choices" or "eww xml", etc.

~~~
jbail
The "too many choices" point gave me a good laugh.

------
mcantor
No, it doesn't. Next!

ts;dr: This title is such flagrant linkbait that I can't bring myself to click
on it, even though I'm a hippy rubyist and bash on java all the time.

