Write once, run anywhere?

Java is said to offer cross-platform compatibility, but Sun still controls the language, writes Nick Langley

Java is said to offer cross-platform compatibility, but Sun still controls the language, writes Nick Langley

What is it?
Java was introduced as a way of developing operating system-independent "applets" for desktop systems. Then the focus moved to the server side, getting a huge boost when IBM adopted it as its strategic development language for everything from the mainframe to handheld systems. More recently, Java has become a key technology for the wireless Web and Web services.

Where did it originate?
At Sun Microsystems, in 1991. James Gosling was trying to find a way of developing C++ programs that could run on the widest possible variety of platforms without recompiling.

This was no dry laboratory exercise. "We were trying to build a distributed system that would make sense as a business product, to sell modern software technology to consumer electronics manufacturers," Gosling explains.

The first Java Developer's Kit was released in 1995.

What's it for?
In recent years most effort has been put into server-side development, but the rise of J2ME (Java 2 Micro Edition) and technologies such as the J2ME Wireless Toolkit and Java Web Star have brought attention back to the client.

J2SE (Java 2 Standard Edition) is for building and deploying client-side applications. J2EE (Java 2 Enterprise Edition) is for multi-tier applications, based on re-usable components called Enterprise Java Beans.

What makes it special?
It should be possible to deliver any Java application over a network, or the Internet, to any platform, without operating system or hardware compatibility issues.

The original Java mantra was "write once, run anywhere". This was supposed to contrast with Microsoft lock-in. But despite the Java Community Process, and nods to open source developers, Sun will not release control of Java to an independent body.

How difficult is it?
C++ developers and those with object-oriented programming experience can become productive after just one week's training. You will get more out of Java training if you learn object-oriented concepts and techniques beforehand.

"Making up your mind as to what portion of the Java platform you want to specialise in is perhaps tougher than learning the language," says Sun's Java evangelist Raghavan Srinivas.

Where is it used?
Everywhere from programmable toasters to the heart of the datacentre.

Don't confuse
The Java "write once, run anywhere" mantra with the graffiti artists' version: "write anywhere, run".

What does it run on?
Any platform that has a Java Virtual Machine - the runtime environment that interprets compiled Java code and performs the required actions. With J2ME, Java is being built into mobile phones, TV set-top boxes and smartcards.

Few people know
How many Java developers there are. Sun claims there are three million but admits it cannot be sure.

What's coming up?
The Java Web Services Developer Pack, second early release, is available from www.java.sun.com/. It is tested for Windows 2000, Windows XP Professional, Solaris and Red Hat Linux.

Sun and IBM are the obvious sources, and the majority of independent training organisations also offer Java. But if you don't want to pay up to £1,500 for a week in the classroom, there are plenty of free tutorials. Try for example www.java.sun.com/, www.ibm.com/developerworks/java, www.java.about.com/, www.javashareware.com/, www.javacoffeebreak.com/, www.developer.com/java or www.java.apache.org/. The hard-copy Java bibles come from O'Reilly ( www.java.oreilly.com/).

Rates of pay
Salaries start at £18,000 for trainee developers and rise to upwards of £50,000 for the very experienced. Wireless Java and Java security are among the hottest skills, commanding £30,000 to £55,000. Experienced J2EE architects could receive £70,000 or more.

Read more on Software development tools