CONTENTS | PREV | NEXT The Java Language Environment

Java--Simple and Familiar

You know you've achieved perfection in design,
Not when you have nothing more to add,
But when you have nothing more to take away.

Antoine de Saint Exupery.

In his science-fiction novel, The Rolling Stones, Robert A. Heinlein comments:

Every technology goes through three stages: first a crudely simple and quite unsatisfactory gadget; second, an enormously complicated group of gadgets designed to overcome the shortcomings of the original and achieving thereby somewhat satisfactory performance through extremely complex compromise; third, a final proper design therefrom.
Heinlein's comment could well describe the evolution of many programming languages. Java presents a new viewpoint in the evolution of programming languages-- creation of a small and simple language that's still sufficiently comprehensive to address a wide variety of software application development. Although Java is superficially similar to C and C++, Java gained its simplicity from the systematic removal of features from its predecessors. This chapter discusses two of the primary design features of Java, namely, it's simple (from removing features) and familiar (because it looks like C and C++). The next chapter discusses Java's object-oriented features in more detail. At the end of this chapter, you'll find a discussion on features eliminated from C and C++ in the evolution of Java.

Design Goals
Simplicity is one of Java's overriding design goals. Simplicity and removal of many features of dubious worth from its C and C++ ancestors, keep Java relatively small and reduce the programmer's burden in producing reliable applications. To this end, the Java design team examined many aspects of the modern C and C++ languages 1 to determine features that could be eliminated in the context of modern object-oriented programming.

Another major design goal is that Java looks familiar to a majority of programmers in the personal computer and workstation arenas, where a large fraction of system programmers and application programmers is familiar with C and C++. Thus, Java looks like C++. Programmers familiar with C, Objective C, C++, Eiffel, Ada, and related languages should find their Java language learning curve quite short--on the order of a couple of weeks.

To illustrate the simple and familiar aspects of Java, we follow the tradition of a long line of illustrious programming books by showing you the HelloWorld program. It's about the simplest program you can write that actually does something. Here's HelloWorld implemented in Java.

    class HelloWorld {
static public void main(String args[]) {
System.out.println("Hello world!");
This example declares a class named "HelloWorld". Classes are discussed in the next chapter on object-oriented programming, but in general we assume the reader is familiar with object technology and understands the basics of classes, objects, instance variables, and methods.

Within the HelloWorld class, we declare a single method called main() which in turn contains a single method invocation to display the string "Hello world!" on the standard output. The statement that prints "Hello world!" does so by invoking the println method of the out object. The out object is a class variable in the System class that performs output operations on files. That's all there is to HelloWorld.

Please send any comments or corrections to
Copyright © 1997 Sun Microsystems, Inc. All Rights Reserved.