What is it?
Java is a platform-independent object-oriented programming language developed by Sun Microsystems.
Sun is close to completing the open sourcing of its Java platforms, which started with Java Enterprise Edition last year. They are covered by the General Public Licence Version 2 also used for GNU/Linux.
There are three Java platforms: Standard Edition (SE) for desktops Enterprise Edition, based on SE but with added application programming interfaces (APIs) for server-side computing and Micro Edition (ME), which includes a set of configurations and APIs to cope with the limitations of handheld and embedded devices.
Applications developed for any Java platform, on any hardware and operating system, are compiled into machine-independent byte codes and so will run unchanged on any other platform - hence the boast "write once, run anywhere".
Where did it originate?
In the early 1990s, Sun's James Gosling was looking into ways of developing C++ programs that could run on the widest range of platforms without compiling. His solution became the Java Virtual Machine (JVM).
What's it for?
The JVM is the key to Java's application-independence, and it can run on top of most operating systems. Applications are thereby able to operate consistently, regardless of the quirks of the underlying platform. The Java Runtime Environment (JRE) includes the Java APIs, JVM and other components needed to run applications.
The Java Development Kit, a superset of the JRE, contains tools such as compilers and debuggers.
What makes it special?
Both Sun and Java backers such as IBM make many claims for Java, most at the expense of C++. They include greater code efficiency (they say Java can be four times smaller than the corresponding application written in C++) faster code (half the time needed for C++) better coding practices, with automatic garbage collection avoiding memory leaks more re-use, and faster and easier software distribution.
Surveys have shown that developers believe Microsoft's C# is overtaking Java in many functional and other respects. But despite Microsoft opening it up, analysts say C# will probably never equal the platform independence offered by Java.
How difficult is it to master?
Gosling was probably the last man to know everything there is to know about Java. These days you need first to decide which part of the Java platform to concentrate on. Thanks to Java's roots, C++ developers start with an advantage. Others will need to get to grips with object-oriented programming techniques.
Where is it used?
According to Sun, there are more than 3.8 billion Java-enabled devices worldwide.
What systems does it run on?
Java SE runs on top of Linux, Sun Solaris, Mac OS X and Windows.
What's coming up?
The Java Development Kit is being open-sourced incrementally, with completion expected in 2007.
Rates of pay
Salaries for Java programmers start at £25.000. With two years' experience, you can look for £40,000. J2EE and Java ME specialists are the best paid.
Java training is available from many sources, although Sun has overall control of certification. To become a certified programmer, you will need to take two courses, available in the classroom (five days each), online (15 and 28 hours respectively) or on CD Rom. IBM's Developerworks site offers plenty of free resources.