Seriously though, if you walk through Fry's Electronics (here in the
States) or browse through Amazon.com, what shrink-wrapped consumer
software will you find that was written in Java?
True, but then you didn't find products like Napster or Netscape
shrink-wrapped in the shops either, and look how popular they were
during their peek.
Off the top of my head I can think of three reasons why JVM-targeted
software doesn't tend to come shrink wrapped...
1) Thanks to various legal disputes and associated shenanigans by one
or two blue-chip tech companies (naming no names) the JVM has never
really gotten the coverage on out-of-the-box PC's it deserved. Apple's
decision to include Java as standard, coupled with some politicking
by Sun on the PC front, and the introduction of JWS, hopefully will
solve that - in time!
2) Java is very much a network-centric technology. As with apps like
Napster, Opera, Mozilla, Real Player, ICQ, etc... when the focus of
your software is utilising networks, the prefered distribution method
tends to be downloading instead of manufactured 'hard' media.
3) As an extension of (2), Java software tends to be quite compact
from a 'disk space' point of view (obviously it depends upon the app
and its associated data files) and so this makes Java apps even more
attractive for download style distribution, rather than alternative
methods which require manufacturing.
I have nothing against Java, I just would like to know where Swing is
predominantly used. If it's in-house projects or horizontal markets,
that's perfectly cool with me.
It wouldn't surprise me at all if there were more GUI apps running
on mobile/cell phones today than on desktops. Of course, MIDP does
not use Swing. Swing's main market right now seems to be niche
applications and utilities, and client interfaces which interact with
other Java software on the server side. But Swing seems (and I am
basing this entirely on my own UNSCIENTIFIC anecdotal observations)
to be slowly building some support.
A few months back I went into a meeting with some academic types to
develop a core component of a large-scale project (seven figure budget
kind of thing) for working with QTI data - the XML schema for academic
assessments. I preposed a Java/Swing solution, which my bosses were a
very nervous about (they insisted two alternative implementations be
outlined in the preposal document, one web-based and the other a native
Windows app). Despite outlining the pros and cons, the clients went
for the Java plan. So far the feedback to the pre-release versions they
have seen and used has been extremely positive - and management here
is telling everyone how they knew this was the right plan all along.
I recently got contacted by some guy about my SourceForge project:
jYMSG. Due to the lack of decent Y! Messenger on anything but the
Windows platform, he is building a YM clone using my lib - including
web cam and voice support. If he can get this to work, then his Java
version will be superior to the official Yahoo offerings.
Okay, neither of these are 'shrink wrap' apps. Indeed they fall into
the niche software category that I mentioned above. But it seems to
me (again, anecdotal) that there is a little more willingness now to
commit to Java desktop/Swing development than there has been in the
past. I'm not suggesting Swing is flavour of the month... just that
it is starting to slowly build some credability.
As a kind of a footnote, I'd like to add that I think the biggest
threats to Java's future success on the desktop come from Sun's own
inability to create an easy/flexible way to get Java software to start
from a double click (even with the -jar option!). And all too often
other software gets in the way - like people getting confused by MS's
redundant 1.1 JVM still lurking around on their Windows installation,
and archive software (ie. Power Archiver) which steal the .jar file
type for themselves (does it still do this, because old version used
to!?!!)
-FISH- ><>