Java has received a great deal of press, but it is not the only game in town. The Inferno project has goals that overlap with Java's, but it reaches them in radically different ways. If you like Java, but have problems with its licensing, look into Kaffe and the JOLT project.

Inferno and Limbo

Inferno is a research project in the Computing Sciences Research Center of Bell Laboratories, the research arm of Lucent Technologies. Here is a precis, adapted from the Inferno Web site (http://inferno.bell-labs.com/inferno/index.html):

Inferno is a new network operating system and programming environment, intended to deliver interactive media in a rich environment of heterogenous networks, clients and servers. Inferno is intended to be used in a variety of emerging network environments, ranging from advanced telephones and hand-held devices to traditional computing systems.
As the entertainment, telecommunications, and computing industries converge and interconnect, a variety of public data networks are emerging, each potentially as useful and profitable as the telephone system. Unlike the telephone system, which started with standard terminals and signaling, these networks will develop in a world of diverse terminals, network hardware, and protocols. Only a well-designed, economical operating system can insulate the various providers of content and services from the equally varied transport and presentation platforms. Inferno is a research project to build a network operating system for this new world.
Inferno's definitive strength lies in its portability and versatility. Inferno is portable across a wide range of hardware and software environments, including machines with minimal memory resources. It can be run as a stand-alone system or as a user application. Inferno applications, written in the Limbo programming language, are portable in both source and binary form to all Inferno systems.
Inferno provides a clean and powerful environment for distributed programming. It establishes an identical environment at the user's terminal and at the server. Each may import the resources of the other; aided by the communications facilities of the run-time system, applications may be split easily (and even dynamically) between client and server. Depending on the hardware or other resources available, applications may load different program modules to perform specific desired functions.

The Inferno project includes some well-known developers, including Sean Dorward, Rob Pike, Phil Winterbottom, with help from Eric Grosse, Jimmy McKie, Dave Presotto, Dennis Ritchie, and Howard Trickey. It also draws on years worth of Plan-9 thinking. Consequently, the Inferno "Buff Paper" (http://achille.research.att.com/inferno/infernosum.html) contains a lot of thought-provoking material.

Kaffe, JOLT, etc.

Kaffe is a clean-room implementation of the Java virtual machine, being developed by Tim Wilkinson in his spare time. Tim's intention is to develop a freeware version of Java which can be used standalone or embedded in other programs (e.g, web browsers).

Unlike the current offering from Sun, Kaffe performs "just in time" code compilation. That is, when each Java method is first called, the virtual machine translates it into native machine code and executes that instead. This currently provides a speedup of approximately 10 times that of the Java Development Kit (JDK).

While Tim concentrates on the virtual machine implementation, others are developing the libraries and compilers. This collective is called the "JOLT project" (Java Open Libraries & Tools). It currently consists of Des Barry, David Engberg, Eric Raymond, Erik Troan, and others. Kaffe and Jolt will be distributed under a BSD-style license (essentially unrestricted). For more information, contact Tim Wilkinson (tim@sarc.city.ac.uk).

Java's simplicity, portability, and safety make it very attractive as an alternative to C and C++. As Bill Raduchel said: "Java: it's C++ without guns, knives, or clubs". First, however, Java will need a high-quality compiler and access to large sets of supporting classes and methods, I expect to see a GCC front end for Java show up fairly soon; interfaces to traditional C libraries should follow shortly. Keep an eye on the usual GNU FTP sites (ftp://prep.ai.mit.edu/pub/gnu/ and its many mirrors) for developments along these lines.