What is it?
"The number of technologies listed here can appear overwhelming. Keep in mind that you will not need to use them all," says Sun's overview of Java Technologies for Web Applications. This is good advice for anyone approaching Java for the first time, particularly if they have decided to make use of the many free resources available to teach themselves.
A summit in May 2008 on the future of the Eclipse development platform revealed concerns over proliferating Java technologies leading to "too many ways of doing things".
Fortunately Sun has provided a simple path for people who want to take the first steps in Java development. Its advice is: "Start with one of the tools listed below, work your way into the next tool, and include the resources as you feel ready." The path leads from first steps in programming to the NetBeans Integrated Development Environment. It's intended for "young developers" from high school to first year undergraduates, but as Sun says, "that doesn't mean someone younger or older won't benefit from it".
Where did it originate?
James Gosling began developing Java as a processor-independent language in 1991. It was released in 1995, and integrated into the then-dominant Netscape Navigator browser. A journalist writing for Wired commented: "Java is unlikely ever to become a major profit centre at Sun". In 2007, Sun open-sourced most of the Java platform under the GNU public licence.
What is it for?
Rather than running directly on the native operating system, Java programs are executed by a Java Virtual Machine (JVM) specific to the underlying hardware/software platform. Programs developed on one platform should be able to run on any other for which a JVM is available. This is the basis of Java's "write once, run anywhere" capabilities. Programs are compiled to Java bytecode. Google's Android phone platform has aroused concern because its Dalvik Virtual machine uses non-Java bytecode, thereby jeopardising application portability.
What makes it special?
Other languages that can be compiled to Java bytecode and run on a JVM include Ada, Ruby and Python. Sun is improving support for non-Java languages through the Da Vinci Machine project.
How difficult is it to master?
Sun's Young Developer path includes BlueJ, which teaches "the nuts and bolts of the Java programming language", and shows what is happening visually. It then moves on "seamlessly" via a BlueJ plug-in to the NetBeans IDE, using the World of Zuul adventure game to explore the features of NetBeans. At this point you should be ready to ready to get to grips with the grown-up Java tutorial.
What systems does it run on?
The Java platform and JVMs are available for Windows, Linux, most versions of Unix and IBM's mainframe operating systems.
Rates of pay
For BlueJ and other introductory resources see http://java.sun.com/new2java/
The Java Tutorial is at http://java.sun.com/docs/books/tutorial/
There's also a regularly updated Getting started with Java Facebook page.