Previous Next Contents

2. General Questions About Java and HotJava

This section is a general (non-Linux-specific) introduction to Java and HotJava.

2.1 What are are Java and HotJava and why are they interesting?

Java is a network-aware language superficially resembling C++, but much smaller and more compact and cleanly designed. It's an unlimited-extent language with garbage collection like Lisp, but with static type checking (it's been aptly described as "Smalltalk with sane syntax"). It includes lightweight processes (threads) as a native facility and has powerful network-security features. So far, its major application is the HotJava browser, but it holds considerable promise as a general-purpose application language.

HotJava is a WWW browser written in Java. Its major advance over other browsers is that it knows about a new HTML construct called an APPLET, which is some Java class that executes on the client machine. Thus, WWW documents written with Java in mind can have "live" code objects embedded in them, as opposed to just data.

The ability to safely pass around code objects probably represents the most significant advance in WWW technology since the first release of Mosaic. At minimum, it delivers an extensible Web browser that won't need perpetual upgrading to handle new image formats and tag types.

Java is compiled into a pseudo-code called `J-code'; Java interpeters execute J-code. J-code may be on its way to becoming a universal architecture-independent virtual machine-code or compiler intermediate language. We hear rumors that an ADA-95 compiler that generates J-code has already been built and that a C compiler is in progress; eventually, it's likely that multiple front-end languages will be available for writing either applets or standalone programs on any machine hosting a Java interpreter.

2.2 Where do Java and HotJava come from? Who can use them?

Java and HotJava were developed at Sun Microsystems by a team headed by James Gosling (well known as the designer of Gosling Emacs and NeWS).

The last time Sun tried to set a major technical standard was NeWS, its Network Window System. Though NeWS was pretty universally conceded to be technically superior to X, X won because its sources were freely redistributable. Sun learned from this mistake, and has made Java/HotJava much more generally available; the sources can be downloaded under a fairly relaxed license (see Java as Freely Redistributable Software). Sun is encouraging ports to non-Sun environments.

Netscape now interprets Java. Microsoft licensed the technology in early December 1995. So it appears that Java support will probably become universal in 1996.

Java used to be called Oak. HotJava was once known as WebRunner.

2.3 How mature is Java?

On December 12 1995 Sun released the `Beta 2' version of Java. A month later it released 1.0, the first `production' version. The Java environment API defining its access to the host OS and windowing system has allegedly been semi-frozen -- it may be extended, but won't be incompatibly changed.

The 1.0 version of this FAQ was issued along with the beta 1.0 Java Developer's Kit (JDK) for Linux, ported by Randy Chapman.

Significant holes are known to exist in the Java security implementation. It is not yet a good idea to use Java for sensitive applications. These problems are expected to be fixed in the production (post-beta) releases.

2.4 Where can I find documentation on Java and HotJava?

Sun maintains an extensive HTML web of Java and HotJava-related documents at http://java.sun.com. These documents are mirrored at http://java.blackdown.com and elsewhere; see Sun's list of mirror sites.

2.5 Yes, but where can I find paper documentation?

SunSoft Press's official series of Java books is in the production pipeline at Addison-Wesley. Some details about these can be found in the comp.lang.java FAQ.

Several Java early-adopters have recommended "Hooked on Java" by the members of the Java team. "Well written, though I'd appreciate something less basic" was one comment.

O'Reilly Associates is working on its own series of Java books in cooperation with Sun. These will include (at least) a "Nutshell Guide To Java", a language reference, a class library reference, and a book on the underlying byte-code virtual machine. (Full-disclosure statement: Your HOWTO editor has been invited by O'Reilly Associates to serve as primary technical reviewer for this series, and is being paid for that work.)

SAMS has a book called "Learning Java in 21 Days". No review yet.

One of our contributors, browsing his local Bookstop/Barnes & Noble/Borders, came up with 3 books already out:

Our informant continues: "I bought the 3rd one (by Tim Ritchey). Paper leadtimes being what they are, the CD-ROM only has alpha stuff, though it mentions that the beta version might be out by the time you read it and suggests java.sun.com as a place to get more recent information. Other than that, it's pretty good, even to pointing out that `well, it's pointless for me to spam you with pages and pages of API descriptions because 1) it would quadruple the size of the book and 20 they're still ch anging and 2) you can get that info online at ...etc'"

Dave Dittrich writes: I'd say that "Java in 60 minutes" may take you 60 minutes to read, but won't teach you how to program in Java in 60 minutes (surprise, surprise!) It looks to me like "Java in 60 minutes" is one of the many attempts be first to market with a book on a hot topic. It didn't seem to include much more than you can find right now on the Web, including lots of text that looks like it was lifted straight out of the Java Language Specification (http://java.sun.com/JDK-beta2/psfiles/javaspec.ps).

Dave continues: Same thing with "Java!", only the latter goes into much more detail on object oriented programming concepts, etc. Someone pointed me to another text book that is equally as good at covering data/method abstraction and other object oriented programming concepts, which is "Structure and Interpretation of Computer Programs" by Abelson, Sussman and Sussman (MIT Press).

Final caveat: at this point (January 1996), it is probly a good idea to stay away from the Ritchey book or anything else based on the alpha API. The beta API is substantially different, and the soon-to-be-released Java 1.0 will have its own differences.

2.6 Where can I find on-line collections of Java code?

WWW archives of applets are available at the following locations:

Most of the applets on these pages come with source code, and programmers are invited to use them.

Pointers to others may be available in the comp.lang.java FAQ.


Previous Next Contents