Java is designed to meet the challenges of application development in the
context of heterogeneous, network-wide distributed environments. Paramount
among these challenges is secure delivery of applications that consume the
minimum of system resources, can run on any hardware and software
platform, and can be extended dynamically.
Java originated as part of a research project to develop advanced software for a
wide variety of networked devices and embedded systems. The goal was to
develop a small, reliable, portable, distributed, real-time operating
environment.
When the project started, C++ was the language of choice. But
over time the difficulties encountered with C++ grew to the point where the
problems could best be addressed by creating an entirely new language
environment. Design and architecture decisions drew from a variety of
languages such as Eiffel, SmallTalk, Objective C, and Cedar/Mesa.
The result is a language environment that has proven ideal for developing secure,
distributed, network-based end-user applications in environments ranging
from networked-embedded devices to the World-Wide Web and the desktop.