Of course, none of this is free. Because arbitrary client environments must be supported, the downloaded code must be interpreted or compiled by the client machine. The interpreter must also authorize requested actions to protect the client machine from buggy or malicious code.
Java is a compiled language, based on C and C++. The output of the Java compiler is a set of instructions for a virtual machine. The instructions are typically executed by an interpreter that resides inside a WWW browser. Java enforces a consistent virtual architecture, allowing it to run on any kind of client machine.
Most programmers will face few hurdles in learning Java. Java borrows a few object-oriented notions from C++, but it is really a lot closer to ANSI C than to C++. Consequently, the learning curve for C programmers will be particularly short and gentle.
Java's object-oriented features are not difficult to use. Its strong typing and architecture neutral data types require only a small amount of discipline. The somewhat peculiar set of library functions (classes, really) is likely to be the biggest hurdle. Because Java must run inside a browser on an arbitrary platform, many conventional C library functions simply aren't available.
http://www.javasoft.com/ is the center of the Java universe. It contains documentation, downloading information, pointers to other sites, and much more.
The site offers several kinds of Java software, serving a range of user and programmer needs. Prospective Java programmers will want to get copies of the Java Developers Kit (JDK). This contains an Applet Viewer, a Compiler, a Runtime system (interpreter), and some preliminary debugging tools.
Sadly, the JDK only supports a small set of environments at present. The site lists (SPARC) Solaris 2.3 or higher, (Intel x86) Windows NT/95, and the Macintosh. The site claims, however, that the JDK will soon be released in source form. This may allow adventurous programmers to attempt ports.
The browser situation is a bit more complicated. HotJava(tm) is a modular, applet-aware, extensible World-Wide Web browser written entirely in Java. The browser, now in an alpha release, is not intended to have the full functionality of a finished commercial product. It does, however, demonstrate the concept of executable content.
So, even if you get HotJava, you should probably pick up a copy of Java-enabled Netscape. The Netscape home page (http://home.netscape.com/) will lead you to the appropriate downloading information.
While you're getting the software, don't forget to pick up some documentation. There is quite a bit of freely available Java documentation on the Javasoft server. There is also a slew of Java books about to hit the market. By press time, I estimate that there will be more than a dozen Java books in print.