Myths and facts of "Java Everywhere"
By Michael Yuan
The big news from this year's JavaOne conference is "Java Everywhere". What
exactly is "Java Everywhere"? It seems that there are a lot of confusions or
even resistance from existing Java developers. I attempt to clarify some myths
through a series of FAQs in this short article. You can post comments to the J2ME
forum and I will read them. :) Please note that I do not work for Sun
Microsystems. So, the opinions expressed here are only mine.
- Is "Java Everywhere" only about J2ME? No. "Java Everywhere" is
about world domination! The idea is to have a single architecture for all
computing needs from servers to clients, from components to grids. It includes
Java on server (J2EE), desktop (J2SE and Swing/SWT), smart devices (J2ME) as
well as smart cards (JavaCard). They all work together to provide a consistent
platform to make life easier for us developers. The fact that J2ME
seems to be the mostly mentioned these days is because the large un-tapped
market on the client side. With smart devices shipment twice the PC shipment
this year, Windows PCs will no longer be the dominant client platform for
Internet applications. That has finally given us a chance to break the
Microsoft monopoly. (Well, Microsoft is making a major effort to make sure
that the PocketPC/SmartPhone OS and the .NET Compact Framework will dominate
the device space. But that is another story).
- Is "Java Everywhere" about consumer games? Not at all. Mobile
gaming is one of few IT markets that are still fast growing (hence new job
opportunities). Mobile games today are mostly casual games. With more powerful
devices and new APIs such as the J2ME 3D API, action games on handsets are
just around the corner. However, gaming is only one piece of the overall
picture. Adding mobility to enterprise applications is another potentially
explosive growth section. If mobile entertainment allows you to kill time
where waiting in a line in the airport, mobile enterprise will allow you to
avoid the line altogether. This switch from "toys" to "tools" has fueled the
growth of Java itself in the past 8 years.
- How big is the "Everywhere" market, anyway? No one knows, but it
will be bigger than anything we know of. I will just give you one number: the
cell phone ringtone download business in Europe alone is $1.4 billion dollars
for the last year. In contrast, the entire global J2EE server market is $2.25
billion. Ringtone downloading is a very "dumb" service and offers very limited
value to customers. Imagine the market size of hundreds of billions of smart
Java devices accessing J2EE backends and paying for the service on a
monthly basis. J2ME operator Vodafone is the biggest company in
Europe and J2ME applications are already the second largest revenue source
for its content services.
- I am an enterprise developer and I am not interested in client
software. How is "Java Everywhere" relevant to me? Well, it is about your
job security. :) The good news is that you do not have to switch your career
to develop client software. "Java Everywhere" brings growth to the otherwise
saturated J2EE application server market. We need scalable and high
availability servers to connect and drive those smart devices. This new type
of J2EE applications are often different from today's HTML browser based
applications. But with some knowledge of the new end-to-end application
paradigm and common J2EE patterns (e.g. the MVC, facade etc.), you can get
started fairly quickly.
- I am an enterprise developer, do I have to start over to learn
J2ME? No. In fact, the best feature of "Java Everywhere" is that it makes
it easy for existing Java developers to migrate to new application areas. For
example, familiar Java language features and all major IDE tools are available
in J2ME. In addition, many design patterns, best practices and performance
tips can still be applied with little modification. Vendors like Nokia, IBM
and Sun are making major efforts to provide end-to-end Java tools and
educational programs for existing Java developers. However, we have to note
that "Java Everywhere" emphasizes on developer skill transfer rather than
cross-platform runtime environments. Due to the physical constrains of small
devices, many J2SE API libraries are not available in J2ME profiles or are
only available in a lightweight form. We have to investigate and understand
those changes.
- Mobile commerce has already failed. Why bother J2ME? Some people
confuse the "Java Everywhere" push as another "hype" for the WAP-based mobile
commerce, which was widely considered a failed experiment a couple of years
ago. But we do learn from the past. J2ME and smart clients represents a
completely different application paradigm than WAP/WML. It takes in account
the reality of today's wireless network, user requirement and takes advantage
of new device innovations. In short, it is completely different from WAP. For
more information, you can read this
thread in the J2ME forum.
"Java Everywhere" is about world domination and new opportunities for
developers. Interested readers can refer to my new book "Enterprise J2ME" (Coming out this
fall from Prentice Hall) for more information. In the meanwhile, please continue
the conversation in the
Saloon.