Featured Whitepapers
Newsletter sign-up
View all newsletters

Sign up for our technology specific newsletters.

Enterprise Java
Email Address:

How can Java rule the world?

Three key steps to Java's success

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone
The rumbling sound heard across the planet is not a sudden rash of earthquakes, but the mad rush of a million pairs of feet scrambling to bookstores to buy the latest tome on Java. As the Java Gold Rush accelerates, GreenPeace estimates global deforestation will increase by 25 percent this year alone, as paper mills worldwide try to keep up with the demand.

Being a Java programmer is way cool. Experienced C++ programmers (at least those who consider Java a viable alternative) suddenly are in the limelight and smiling broadly. "You see," they say, "we were right all along. Just a little ahead of our time. Consulting contract? Hey, man, talk to my agent." No longer perceived as the hirsute hackers of the computer set, they are magically transformed into Internet Royalty.

The hype machine works 24 hours a day. Java is everywhere. Java is everything, Java rules! Bill Gates has retreated to a bunker in Seattle. It's all over for Microsoft. The boys and girls from JavaSoft are off to do their start-up. Venture capitalists are throwing checks at them like teenage boys lobbing room keys at Madonna.

What's going on here? And when?

Some basic facts

Java is a programming language. People use it to write programs that run in a client/server configuration and over remote networks. Java code also can run within a virtual machine in a browser. Nearly all the programs written in Java today are applets, small programs designed to perform simple functions. All the Java code in the world would probably fit on one CD-ROM. (All right, maybe two.)

So far, Java is a programming language primarily for clients; server support is weak. The best Java development tools are currently found in press releases. Existing Java compilers produce executables that run ten times slower than equivalent C or C++ code. Downloading Java applets over the Internet to a remote client is just as slow as downloading a GIF image; for executables over 30 or 40 kilobytes, it can be painful.

What's needed?

Currently, developers typically employ Java to animate logos, sketch cute cartoon characters, and emulate stock tickers from static data. People are writing simple applets, that's about it. True, there are some brave souls trying to write full-fledged applications software for client/server environments. Nearly every software company in the world is trying (or claiming) to develop a Java product of some sort. But the market remains in its early-adopter phase.

Today's reality is that most developers are making hard trade-offs about where to use Java and where to use another language, especially C++. Many developers are designing applications that use Java to manage all or portions of their user interface, and C++ code where performance is critical. The belief is that an intelligently designed program, with components written in C++, can be rewritten (or translated) to Java when compiler performance improves.

This is a logical assumption, but it comes with a few warning flags. As a new language, Java has weak links to legacy systems. C++, on the other hand, has ten years of C and C++ development behind it. While the commercial market for C++ class libraries is not robust, it is easy to find code, code fragments, and class libraries within a corporation or in the public domain. Java can employ a C interface library to talk to legacy applications, but the existing code base is small. Similarly, some of Java's strengths create some new challenges. For example, while Java eliminates the need to understand the complexities of pointers, it has created a nearly equal need to understand and manage threads.

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone
Comment
Login
Forgot your account info?
Add comment
Anonymous comments subject to approval. Register here for member benefits.
Have a JavaWorld account? Log in here. Register now for a free account.
Resources