In the IT industry, the word "Java" conjures up thoughts of the programming language far more often than that steamy,...
caffeine-laden beverage from Starbucks. And that's for good reason. IT managers and professionals should know about Java, even if they never write a line of code.
Java was introduced by Sun Microsystems six years ago as a way to develop applications that are not tied to the hardware or operating system. Sun pledged that developers could "write once, run anywhere." This portability has much to do with Java's success.
How successful is Java? Sun estimates there are 3 million Java programmers in the world today. Industry watchers predict Java will become the most popular application development platform next year. Java is rapidly overtaking C and C++ in computer science programs. In fact, the College Board decided to use Java as the language for the AP Computer Science Examinations beginning with the 2003-2004 academic year.
With a few exceptions, technology companies -- even long-time Sun competitors such as IBM -- have embraced Java. IBM sees Java as the unifying development platform for its family of servers, ranging from small Intel-based boxes to mainframes. Companies with decade-old Cobol code are able to bring such applications to the Web by wrapping them with Java and using a Java-based application server.
Java is also catching on with developers for personal digital assistants and cellular telephones. Carriers such as Nextel and phone manufacturers like Nokia, Motorola, and Ericsson use Java for Web-based services on cellular phones or have plans to do so, said David Harrah, group manager for Java public relations.
What makes Java different?
Unlike C or C++, Java is an object-oriented language to the core. While object-oriented programming is nothing new, Java takes away much of the complexity of it. For example, Java includes "garbage collection," which makes managing memory allocation in programs much easier, said Uttam Narsu, a Giga Information Group analyst.
Computers also read Java applications differently. With C++ and other programming languages, a programmer writes code and then compiles it. Compilers take the code and convert it into machine code. A weakness of this method is that programmers need a specific compiler for each pairing of machine and operating system that will run the program. Those criteria also influence how the programs are structured.
In contrast, Java applications are converted to bytecode. The code is then read and executed by a Java Virtual Machine (JVM), an application installed on the computer or server. Since the nuances and needs of each specific platform are built into the JVM, the imputed bytecode can be used on any machine and operating system combination.
The beauty of such a situation is that it allows companies to develop a program on an inexpensive Intel-based PC and then run it (with a few exceptions) on all platforms. "You don't have the political battles (between users of different platforms)," Narsu said.
Can you really write once and run anywhere?
Applications truly can be run on other platforms if developers follow certain guidelines when writing the code, Narsu said. Giga Group estimates that moving a Java-written program to another platform would cost only 5% to 10% of the cost of rewriting it. Much of the expense is for debugging. "People used to say with Java you 'run once, then debug everywhere,' " Narsu said, adding that debugging has gotten better.
The advent of Enterprise Java Beans (EJBs) has solved the long-standing problem of how to reuse parts of applications. "For more than 20 years, there has been a lot of reinventing the wheel in software development," Narsu said. "Developers have solved the same problems over and over again."
An EJB is a specific component in an application that runs on a server. It's debugged and tested. The EJB can then be deployed as originally planned, it can be plugged into another application, or it can even be sold. Some companies specialize in selling EJBs for certain functions.
Enterprise customers like being able to leverage their applications written in other languages with Java-based application servers, Harrah said. Companies ranging from BEA to IBM to Oracle offer application servers that support Java.
Soon, Java will have some competition from Microsoft's .Net initiative with its C# programming language. Microsoft has tried to distance itself from Java, and has not included a JVM in its new version of Windows, XP. But .Net would not have been possible if Java hadn't blazed the trail first, Narsu said. "The coincidences are astounding."
This is still a multi-platform world, Narsu said, noting that most new applications written use a mixture of technologies. "(But) Java is here to stay. It has rapidly settled in."
FOR MORE INFORMATION: