James Gosling, der Vater von Java, einer der weltweit am häufigsten verwendeten Programmiersprachen, hat mit dem Forscher Lex Fridman über die Ursprünge von Java und seine Beweggründe für die Entwicklung einer Sprache gesprochen, die auf zig Milliarden Geräten verwendet wird und eine zentrale Rolle bei der Entwicklung von Android bei Google spielt.
Gosling entwickelte Java vor 25 Jahren, als er bei Sun Microsystems arbeitete. Im Jahr 2009 war Java einer der Hauptgründe für die Übernahme von Sun durch Oracle. Nach Angaben von Oracle sind heute weltweit 51 Milliarden aktive Java Virtual Machines (JVMs) im Einsatz.
Aber schon lange vor der Übernahme von Sun durch Oracle machten sich Gosling und sein Team bei Sun „Gedanken darüber, dass es in der Welt der Computer etwas gibt, das die Computerindustrie verpasst“ – das, was heute zum Internet der Dinge werden würde.
SEE: Hiring Kit: Python-Entwickler (TechRepublic Premium)
„Es ging darum, was in Bezug auf Computer-Hardware, Prozessoren und Netzwerke außerhalb der Computerindustrie geschah“, sagte er.
„Das reichte von den ersten Anfängen der Mobiltelefone bis hin zu Aufzügen und Lokomotiven, Prozesssteuerungssystemen in Fabriken und allen Arten von Audio- und Videogeräten.
„Sie alle hatten Prozessoren in sich, sie alle machten etwas mit ihnen, und ich hatte das Gefühl, dass dort etwas vor sich ging, das wir verstehen mussten.“
Zu diesem Zeitpunkt beherrschten C und C++ „absolut das Universum“ und alles wurde in diesen Sprachen geschrieben.
Gosling sagt, dass sein Team um 1990 herum mehrere „epische Reisen“ unternahm, um Toshiba, Sharp, Mitsubishi und Sony in Japan, Samsung und mehrere andere südkoreanische Unternehmen zu besuchen, und dass es „ganz Europa“ bereiste, um Unternehmen wie Philips, Siemens und Thomson zu besuchen.
„Eines der Dinge, die auffielen, war, dass sie all die üblichen Dinge taten, die die Menschen 20 Jahre zuvor getan hatten“, erinnert er sich.
„Sie erfanden die Computervernetzung neu und machten all die Fehler, die die Menschen in der Computerindustrie gemacht hatten.
„Da ich viel im Netzwerkbereich gearbeitet habe, besuchten wir das Unternehmen X, das uns seine Netzwerktechnik beschrieb, und ich konnte ihnen ohne weiteres 25 Dinge nennen, die ein völliges Desaster sein würden.“
Die Entdeckung, dass die Industrie außerhalb der traditionellen Computerwelt frühere Fehler wiederholte, war einer der Hauptgründe, warum Gosling und seine Kollegen glaubten, mit Java etwas Nützliches anbieten zu können.
Er erkannte aber auch, dass die Unterhaltungselektronikindustrie und die Computerindustrie eine sehr unterschiedliche Sicht auf die Kunden hatten, was ihm bei der Entwicklung von Java half.
„Ganz oben auf der Liste stand, dass die Beziehung zum Kunden als heilig angesehen wurde. Sie waren niemals bereit, für die Sicherheit Kompromisse einzugehen. Eines der Dinge, die mich in der Computerindustrie immer nervös gemacht haben, war, dass die Leute bereit waren, Kompromisse bei der Zuverlässigkeit einzugehen, um Leistung zu erhalten“, so Gosling.
„Man muss nur herausfinden … wie man sicherstellt, dass der Kunde nicht stirbt, wenn man ein Stück Toast in den Toaster steckt. Es wird nicht in Flammen aufgehen und das Haus niederbrennen“, fügte er hinzu.
Nach diesen Road Trips bauten Gosling und das Unternehmen einen Prototyp eines Steuersystems in C und C++-Code für Haushaltselektronik wie Fernseher und Videorekorder. Sicherheit war ein wichtiger Aspekt bei der Entwicklung des späteren Java.
„In den frühen 90er Jahren war man sich darüber im Klaren, dass die Hauptquelle für Sicherheitslücken Zeiger waren, dass es sich um Bugs handelte, etwa 50 bis 60 bis 70 % waren Bugs und die große Mehrheit davon waren Pufferüberläufe. Wir müssen dafür sorgen, dass so etwas nicht passieren kann. Und das war für mich der ausschlaggebende Punkt: ‚So kann es nicht weitergehen‘.“
Aber Anfang dieses Jahres las Gosling einen Nachrichtenbericht, in dem das Chromium-Team feststellte, dass 70 % der Sicherheitsfehler in der Chrome-Codebasis Speicherverwaltungs- und Sicherheitsfehler waren.
„Chrome ist wie ein riesiges Stück C++-Code. Und 60 bis 70 % aller Sicherheitslücken waren dumme Zeigertricks. Und ich dachte, es ist 30 Jahre später und wir sind immer noch dabei“, sagte Gosling.
Neben den Sicherheitsüberlegungen für Java wollte er auch die „Geschwindigkeit der Entwickler“ sicherstellen.
„Ich habe mir das sehr zu Herzen genommen, weil ich unglaublich viel Zeit meines Lebens damit verbracht habe, mysteriöse Zeiger-Bugs zu finden. Die mysteriösen Zeigerfehler sind in der Regel am schwersten zu finden, denn … die Wahrscheinlichkeit, dass sie Schaden anrichten, liegt bei eins zu einer Million“, bemerkt er.
„Wenn man eine Milliarde Operationen pro Sekunde durchführt, bedeutet das, dass es passieren wird. Ich bin sehr darauf bedacht, dass wenn etwas schief geht, es sofort und sichtbar passiert. Eines der Dinge, die Java für viele Entwicklungsfirmen so attraktiv gemacht haben, war die Tatsache, dass wir wissen, dass wir unseren Code doppelt so schnell zum Laufen bringen.“
SEE: Stephen Hawking hatte Unrecht damit, dass KI die Menschen tötet (sagt ein Roboter)
Objektorientierte Programmierung war laut Gosling ebenfalls ein wichtiges Konzept für Java.
„Eines der Dinge, die man aus der objektorientierten Programmierung erhält, ist eine strenge Methodik in Bezug auf die Schnittstellen zwischen den Dingen und die Klarheit darüber, wie sich Teile zueinander verhalten.“
Dies hilft, Situationen zu bewältigen, in denen ein Entwickler versucht, sich „um die Seite herumzuschleichen“ und den Code für einen anderen Benutzer zu verändern.
Er gibt zu, dass er einige Leute verärgert hat, indem er Entwickler daran hinderte, Hintertüren zu benutzen. Es war eine „Social Engineering“-Sache, aber er sagt, dass die Leute entdeckten, dass diese Einschränkung einen Unterschied machte, wenn sie große, komplexe Software mit vielen Mitwirkenden über mehrere Organisationen hinweg entwickelten. Es gab diesen Teams Klarheit darüber, wie das Zeug strukturiert wird und „rettet Ihr Leben“.
Er kritisierte kurz den Umgang des ehemaligen Android-Chefs Andy Rubin mit Java bei der Entwicklung von Android. Gosling hatte 2011 nach der Übernahme von Sun durch Oracle eine kurze Zeit bei Google gearbeitet. Die Klage von Oracle gegen Google wegen der Verwendung von Java-APIs ist nach einem Jahrzehnt der Gerichtsverhandlungen immer noch nicht vollständig beigelegt.
„Ich bin froh, dass es so gekommen ist“, sagte Gosling und bezog sich dabei auf die Verwendung von Java in Android. „Java lief schon seit einigen Jahren auf Mobiltelefonen und funktionierte sehr, sehr gut. Es gab einige Dinge darüber, wie sie es gemacht haben, insbesondere verschiedene Arten, wie sie alle möglichen Verträge verletzt haben.“
„Der Mann, der es leitete, Andy Rubin, hat eine Menge Grenzen überschritten. Es wurden Grenzen überschritten, die sich seitdem zu riesigen Gerichtsverfahren ausgeweitet haben. Das hätten sie nicht tun müssen, und es wäre in der Tat viel billiger gewesen, wenn sie keine Grenzen überschritten hätten“, fügte er hinzu.
„Ich kam zu der Überzeugung, dass es keine Rolle spielte, was Android tat, es würde in die Luft gehen. Ich begann, mich wie ein Bombenhersteller zu fühlen.“