Java (originally called Oak) was developed because Sun was having difficulty using C++ as part of a larger project. Java was designed to have a small footprint when it ran standalone in small machines and devices. The Java language was derived from C++ but without many of the cumbersome, difficult-to-use features of C++. Java's cross-platform capability originally addressed the problem that applications for embedded devices must run on a wide variety of hardware (without the benefit of a standardized operating system).
Java failed to capture the market in spite of a concerted push into Interactive TV. For a period, Java looked like another good technical idea that would fail comercially.
The Internet came on strong in 1995 but webpages did not have dynamic capability. Java soon looked like an ideal tool: it could run on the many operating systems of Internet-connected clients. Netscape licenced Java in mid-1995 for its browser. In a short period, many applets (which run inside a browser) were built and Java quickly gained popularity and acceptance.
Before long, Sun and others in the anti-Microsoft camp, saw a potential for Java beyond the browser (see Figure 1). The so-called network computer would be a simple device which could run Java applications on the client-side. The camp predicted that soon network computers would make the Windows operating system obsolete.
Figure 1: Dreams of Java Ruling the Client
While Java's cross platform capability and its ability to download applications on-the-fly had promise, Java had limited success on the client-side. A number of factors could explain why Java did not meet its early client-side ambitions:
Fortunately for Java, Sun started to target middle-tier capabilities for Java so it would run in the Web/Application Server.
In 1997, Sun defined Servlets so Java could be used to generate HTML webpages with dynamic content. Sun also defined Enterprise JavaBeans so Business Logic could be effectively developed in Java.
In 1999, Sun pulled together its overall middle tier solution for Java called Java 2 Enterprise Edition (J2EE). J2EE describes how to build middle-tier components in a way that these application components can run on Web Servers and Application Servers produced by many leading vendors. The Web/Application Server automate many of the mechanical services like parsing webpages, handling security, persistence/connection pooling, messaging and name services. The J2EE framework frees developers to concentrate on building application content while the vendors provide the logic that provides scalability, reliability security, etc.
Most would agree that Java's current strength lies in building middle tier components.
In future, Java may gain more success in the client (especially if Window's grip weakens). Better Java performance and the introduction of Java 2 Micro Edition open the door for increased use of Java in embedded devices.
December 2012: This page has been translated into Serbo-Croat by Jovana Milutinovich and that translated page is available at Webhostinggeeks.com
June 2017: This page has been translated into French by Anna Chekovsky and that translated page is available at teilestore.de
... back to Java Topics