It’s Not Just for Breakfast Anymore
So just what is Java?
One way to characterize Java technology is with a set of buzzwords: simple, object-oriented, network-savvy, interpreted, robust, secure, architecture-neutral, portable, high-performance, and multithreaded. It is a dynamic language and an extremely efficient programming environment. Developers claim they can build applications two to five times faster than with other languages. Applications written in Java tend to be lightweight, scaling to work in any environment from mainframe computers to tiny devices such as sensors, smart cards, or processors.
The critical points to remember about Java technology can be captured in three statements.
1. The technology is “write once, run anywhere.”
2. It scales to fit any device, from very large to very small.
3. It provides safe network delivery of information and applications.
For business enterprises, Java offers companies the ability to build applications as reusable components and a way to leverage legacy systems without having to rip and replace as they build and extend information networks.
Confusion often arises because a host of software and hardware technologies have been developed that take advantage of the Java programming environment.
Software Software products include operating systems and application environments (for example, JavaOS for business, Personal Java for consumer devices, Embedded Java [a subset for use in embedded environments], and Java Card [a subset used in smart cards]). The creators of Java have made available free of charge a development kit that contains the software and tools needed to compile, debug, and run applets and applications written using the Java programming language. Hardware
Hardware includes “network computers,” also called “thin clients,” which cut the cost of deploying computer resources by eliminating administration at the desktop. This equipment performs best when used to replace fixed function, task-specific PCs, offering a reduction in cost of ownership, better security, and better application delivery at a competitive price.
The Java language
The Java programming language and environment started as part of a larger project to develop advanced software for consumer electronics. These devices are small, reliable, portable, distributed, real-time embedded systems. The intention, initially, was to use C++. However, a number of problems were encountered that, it was finally determined, were best solved by changing the language.
Java omits many rarely used, poorly understood, confusing features of C++. For example, Java has automatic garbage collection. A common source of complexity in many C and C++ applications is storage management — essentially the allocation and freeing of memory. Automatic garbage collection (periodic freeing of memory not being referenced) makes programming easier and dramatically reduces the number of bugs.
A goal of Java is to allow the construction of stand-alone software that can run in small machines. The Java interpreter and standard libraries have small footprints. The small size is important in embedded systems and makes Java easy to download over the internet.
Java has an extensive library of routines for easily handling TCP/IP protocols such as http and ftp. As a result, creating network connections is much easier than in C or C++. Java applications can open and access objects across the net over URLs with ease.
Because Java is intended for use in networked/distributed environments, a lot of emphasis has been placed on security. The language permits the construction of virus-free, tamper-free systems. Authentication techniques are based on public-key encryption. Networks consist of a variety of systems with a variety of CPU and operating system architectures. To enable a Java application to execute anywhere on the network, the compiler generates an architecture-neutral object file format. In other words, the compiled code is executable on many processors, given the presence of the Java runtime system. Therefore, the same version of the application runs on all platforms.
Sun Microsystems, Inc., may be reached at 901 San Antonio Rd., Palo Alto, CA 94303; 650-960-1300; or check out its web site at www.sun.com