Myth: There aren't any commercial apps written in Java.
The last few months have been great for client side Java. With
the release of JDIC, JDNC, Java 1.5 betas, and more support than
ever from Sun, I think we are seeing a revival in interest for client side Java. Still, I hear the usual refrain: "If Java is so good on the desktop, then where are all of the commercial apps?" If I point to something like LimeWire I get: "No. I mean big applications, like Word." Well, I never have an answer for that one. I didn't seven years ago and I don't know. Speed and API support isn't an issue anymore, but there still aren't any well known commercial applications written in Java. That finally led me to the question "Is any big name application written in anything other than C/C++?"
The answer is, strangely, no. Perl, TCL, PHP and Python. No big commercial app is written in anything other than the stalwarts: C and C++. But I also came to another observation. There aren't any new big commercial apps.
I want you to seriously think about this for a change. What big
established software is there that's new? On my computer I have running:
Mozilla, Outlook, Word, Excel, Photoshop, and jEdit. All of those, except
for jEdit (a Java program), stem from a code base that is at least 7 years
old. Excel is twenty! There simply aren't any new big desktop
I remember ten years ago browsing through various computer magazines
that would review the latest versions of word processors, layout programs,
and databases. There was real competition then, and whole new categories of
software came out like disk repair utilities and floppy disk
Today all of that software has been either commoditized or monopolized
(or both). All of the new software is small. There aren't any new large
applications. The market for such things is already saturated, and no new
software means no new languages for writing it.
New software is being written, of course. Constantly. It's just that the new software isn't what we would call Big Desktop Applications. The new stuff is all small. All attacking small problems with specific solutions. No need for a general multi-media package. Instead we have one for playing and managine music. One for editing music. And one for combining music with photos. Instead of one package Apple gives us four with iLife.
In addition to being smaller the new software is increasingly webbased, like Yahoo Mail, or living half on the network and half distributed desktops. This new breed of software is increasingly being written in new languages.
And most importantly, this kind of software is where the growth comes from. There aren't many new desktop spreadsheets anymore. In fact the only new software I've seen come out of the word processing category has been a result of commoditization of the file format (.DOC is now a stable target for reverse engineering) or of the category itself (it's easy to reimplement the features that we now know we need in a word processor).
There's lots of new network and multi-media apps though. Chat. Distributed PIM. P2P file sharing. MP3 players. And I don't even know what category to put Friendster in. These categories are increasingly being done in Java. And Java's faster development type and rich API really shine in these kinds of applications.
So don't worry about the lack of large applications. There's only a few of them anyway. Be more interested in the multitude of exciting, dynamic, and little applications.