Die Anfänge von Java gehen auf das Projekt »Green« zurück, das Sun Microsystems im Dezember 1990 als Ergebnis einer internen Diskussion über die Zukunft der IT-Industrie startete. Eine Gruppe talentierter Programmierer und Visionäre – zum »harten Kern« der Innovatoren gehörten James Gosling, Patrick Naughton und Mike Sheridan – machten sich daran, »die Welt zu verändern«. Sie mieteten – abseits des Firmengeländes von Sun Microsystems – ein Büro in der Sand Hill Road in Menlo Park an und gingen zum Einkaufen – Geräte, wie sie in jedem Haushalt zu finden waren. Die Forscher zerlegten und studierten diese Geräte, um daraus Technologietrends für die Zukunft abzuleiten, und um einige der zerlegten Teile als Komponenten für ein neues Gerät wiederzuverwenden, das als Prototyp entwickelt werden sollte und später den Namen *7 (sprich «star seven«) bekam. Der Name für den *7 leitete sich übrigens auch von einem Gerät ab, und zwar der dortigen Telefonanlage. Wenn ein Anruf kam, und keiner ans klingelnde Telefon ging, konnte man durch die Eingabe von *7 den Anruf zu sich auf den eigenen Telefonapparat holen. Da zunächst keiner mit dem Code *7 vertraut war, musste diese Zeichenkombination öfter durchs Büro gerufen werden, bis sie sich jeder eingeprägt hatte. Später rief man einfach laut *7, wenn man nicht ans Telefon gehen wollte, und schließlich war es der Bürowitz schlechthin, den neuen Geräteprototypen so zu benennen. Die Ingenieure waren überzeugt, dass das nächste Zeitalter des Computing durch kleine Geräte bestimmt würde, und dass eine Fokussierung auf haushaltsübliche Geräte, wie zum Beispiel Videorekorder oder Telefone, stattfinden würde. Der *7 sollte einen Prototyp für die nächste Welle konvergierender Technologien zwischen Geräten sein, wie sie in jedem Haushalt zu finden waren und Geräten der Informationstechnologie darstellen. Das Projektteam »Green« untersuchte zuerst Haushaltsgeräte und dabei erkannte man, dass Mikroprozessoren in allen gängigen elektrischen Haushaltsgeräten integriert werden – vom Telefon bis zum Toaster.
Mit dem *7 sollte darum der Prototyp eines Haushaltsgerätecontrollers entwickelt werden. Er war ein kleiner Computer, mit einem 5 Zoll großen und 16 Bit tiefen, farbigen LCD Display, einer SPARC CPU, kleinen Lautsprechern und diversen Schnittstellen(vgl. Abbildung C.1). Man portierte auf ihn eine Version des Betriebssystems UNIX, die mit weniger als 1 MByte Hauptspeicher auskam und implementierte ein Dateisystem auf seinem Flashspeicher. Als Programmiersprache sollte C++ eingesetzt werden. Signifikante Probleme mit den Werkzeugen, eine hohe Fehlerrate, schwierige bis fehlende Portabilität, Sicherheitslücken, etc. führten jedoch dazu, dass James Gosling, der heute als Vater von Java gilt, für einen alternativen Ansatz plädierte und begann, eine neue Sprache für den *7 zu entwickeln. Die wichtigsten Anforderungen für die neue Sprache waren:
Mit den Anforderungen an den *7 wurden quasi schon die Anforderungen an die Programmiersprache Java definiert, die zunächst unter dem internen Codenamen OAK ( Object Application Kernel) entwickelt wurde. Die Ingenieure zerlegten abermals eine Reihe von Produkten und Haushaltsgeräten und bauten sie so wieder zusammen, dass sie miteinander kommunizieren, Objekte an die jeweils anderen weitergeben und ihr Verhalten gegenseitig verstehen konnten. Ziel war es, das Zusammenspiel der Geräte zu verbessern. Dadurch ließe sich ihre Herstellung vereinfachen und Verbraucher könnten sie ohne weiteres miteinander verbinden.
Am Ende stellte der *7 verschiedene Anwendungen bereit, so z. B. eine Fernbedienung, einen elektronischen TV-Programmführer, eine Scheckbuchanwendung und einen Termin-Kalender. Bei Verwendung als Fernbedienung, wurde die passende Benutzerführung (für den Fernseher oder den Videorekorder) zur Laufzeit nachgeladen.
Der Benutzer agierte mit dem *7 über einen grafischen Assistenten, der heute Duke heißt und inzwischen das Maskottchen von Java geworden ist.
Duke führte den Anwender durch den virtuellen Haushalt, half bei der Programmierung des Videorekorders, las Magazine und navigierte von Zimmer zu Zimmer. Der Prototyp, und insbesondere die ihr zugrunde liegende Technologie, wurde von Sun Microsystems begeistert aufgenommen. Eine eigene Firma namens FirstPerson wurde ins Leben gerufen. Ziel des Unternehmens war, OAK den wichtigen Herstellern von Consumerelektronik-Geräten nahe zubringen.
FirstPerson startete Verhandlungen mit zahlreichen Firmen und bewarb sich u. a. um die Entwicklung von Set-Top Boxen – denen man bereits damals die Zukunft des interaktiven TV zusprach. Doch alle Verhandlungen scheiterten: Der Markt war offenbar noch nicht reif für das, was FirstPerson anzubieten hatte. 1994 kam dann das Aus für FirstPerson. Niemand hatte OAK lizenzieren wollen. Die Firma wurde aufgelöst. Zu der Zeit war die Welt bereits vom Internet-Fieber erfasst, und das Web hatte eine drastische Wende erfahren – weg vom ausschließlichen Medium für Forschung und Wissenschaft, hin zu einem Consumer-Vehikel als neues Medium für die IT.
Sun Microsystems erkannte den Bedarf an einer sicheren, plattformunabhängigen Programmierumgebung für das Internet und orientierte sich mit OAK nun in ebendiese Nische. Die Sprache wurde um zusätzliche Sicherheitskomponenten erweitert und zum Download ins Internet gestellt. Web-Anwender und -Anbieter nahmen die neue Sprache, die nun den Namen Java trug, begeistert auf. Sun Microsystems führte mit ihr seinen traditionell »offenen« Ansatz fort und stellte Compiler, Spezifikationen, Bibliotheken und Dokumentation frei zugänglich in das Internet. Java bot die einzigartige Möglichkeit, Anwendungen erstellen und verteilen zu können, die sich für jedes Netzwerk und jedes Betriebssystem eignen. Heute ist die Sprache allgegenwärtig und in unterschiedlichsten Geräten wie Chipkarten, Set-Top-Boxen, mobilen Telefonen, Laptops, PCs und Großrechner im Einsatz. Weltweit gibt es mehr als sechs Milliarden Geräte, die auf Java basieren. Gerade für große Unternehmen ist Java durch seine Plattformunabhängigkeit und Sicherheit von großer Bedeutung.
Java ist heute nicht mehr nur eine Programmiersprache, sondern ein ganzes Ökosystem: Es gibt weltweit eine riesige Community aus Entwicklern und Benutzern, die Java-Technologien nutzen und vorantreiben. Die Innovationen im Java-Umfeld wurden durch diverse Open-Source Projekte in den vergangenen Jahren und durch Veröffentlichung des Java-Quellcodes extrem beschleunigt. Folgende Liste zeigt einige Beispiele für den Einsatz von Java in verschiedenen Bereichen: