Java vs. Me :) [was: Re: Cast not your Perl before swine?]
dave at thesmithfam.org
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