Java vs. Me :) [was: Re: Cast not your Perl before swine?]

Dave Smith dave at
Mon Dec 17 15:18:26 MST 2007

Bryan Sant wrote:
> Prior to NetBeans, Swing development has always been rediculously
> difficult to make something look good.  However, NetBeans 6 (GPLv2)
> makes it a cake-walk.  Take a look at these Netbeans demo videos
> below.  It really is amazing what Sun has produced.

I am a big fan of the new Java IDEs. As big a Vim user as I am, I still 
use Eclipse for Java development. I'm glad to see that they're finally 
making a WYSIWYG form builder that doesn't suck (it's about time).

> Not that I would ever get the chance, but I would wager that I could
> reproduce your guy's current app with Swing/Java in a few weeks and
> that it would run as fast or faster than your Qt/C++ version.

I highly doubt that. I have no data to back me up, but I highly doubt 
it. Having used many Swing apps, and having written several, I highly 
doubt it. These are not your average fill-in-the-form "CRUD" apps. We're 
talking near real-time hardware monitoring, with funky non-standard 
displays, etc. Some of our competitors use Java/Swing for their GUI 
development, and our customers consistently complain about how slow they 
feel. I realize this is just one example, but it's key for us. Recently 
our customers actually directed our competition to use Qt over Java 
because they are so happy with our Qt GUIs. It's pretty rare that one of 
our customers even *knows* what GUI toolkit is used for a product, let 
alone to direct a vendor to use one in particular.

The other show-stopper is that our customers often want to run a dozen 
Java apps (including some background services) independently. We're not 
talking about a bunch of apps in an app server, but stand-alone 
applications, each with their own JVM instance. Well, when each JVM 
allocates 128MB, that turns into a *lot* of memory. Plus, every Java app 
seems to want to ship its own version of the JVM, making the installs 
huge. With Qt, I statically link everything into my binaries (including 
the kitchen sink, but not libc), and our GUI installs have zero 
dependencies at a size of under 5MB.

There is one advantage to using Java for your development: There are so 
many libraries to do everything under the sun. It's really astounding to 
see the breadth of the libraries available to Java developers. The C++ 
library realm  is lacking by comparison. Frankly, this surprises me, but 
it's true. And this is one thing that I miss, sometimes significantly.

The other area Java fits very well is where you control the deployment 
process in addition to the development process. This eliminates most of 
my complaints about Java's deployability, but if you have to "ship"  it 
to customers where you don't control the installation process, it's more 

> I'm a big Qt fan.  And python ain't too shabby either.  I can
> understand why you're happy with your current setup.

Cool. I guess I dwelled a little much on the down-sides of Java, but at 
least you have a better picture of my rationale now. :)


More information about the PLUG mailing list