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.