Whether intended to service a single person or an entire enterprise, future network-computing systems share some fundamental requirements. They must be reliable, provide security, accommodate future service changes via software, operate in a distributed network, support multiple tasks, respond in real time, and remain price-sensitive. And perhaps most important, applications created to run on these systems must be easily portable.
Sun's Java language meets many of the above requirements from the software side:
- It's simple. Java was designed as closely to C++ as possible, to make the system more understandable. But Java omits many rarely used and confusing features of C++.
- It produces small code. One goal of Java is to enable construction of software that runs on a stand-alone basis in small machines. The size of the basic interpreter and class support is about 40 kbytes; the basic libraries and thread support add 175 kbytes.
- It's object-oriented. This facilitates the clean definition of interfaces and makes it possible to provide reusable software components.
- It's distributed. Java has an extensive library of routines for coping easily with TCP/IP protocols like HTTP and FTP. Also, Java applications can open and access objects across a network via URLs with the same ease programmers are used to when accessing a local file system.