CEBIT'96-Nachlese

JAVA und keine Ende?

Was ist dran an Java? Auf meiner diesjährigen Wallfahrt zur Cebit war ich schon arg verwundert: da wird eine Programmiersprache zum Standard erklärt, bevor sie überhaupt fertig ist?! So viele PR-Yuppies wollten MIR erklären, was an Java dran sei. Und als ich die mal aufklärte, wie Java entstanden ist, sah ich einige versteinerte Gesichter:

Was viele nicht wissen oder wieder verdrängt haben, Java wurde anfangs gar nicht als Programmiersprache entwickelt, sondern entstand 1991 im Rahmen des Green Project bei Sun; Sun wollte nämlich damit auf den Zug der Settop-Boxes also Video-On-Demand, TV-Shopping und anderem Käse aufspringen. Kleine Programme sollten da über die TV-Kanäle geladen und von der Glotze aus bedient werden können.

Bald aber trat in den USA Ernüchterung ein: die Industrie mußte feststellen, daß nur einige Freaks bereit waren, diesen technologischen Schwachsinn mitzumachen und dafür zu löhnen (In Deutschland hat es sich noch nicht herumgesprochen: auf der Cebit-Eröffnungsrede schwelgte der deutsche Zukunftsminister in hehren Multimedia-Tönen naja, Intelligenz und Wissen ist bei deutschen PolitikerInnen immer noch Mangelware!).

Also beschloß das Team um Bill Joy und James Gosling, die in den Sand gesetzten Arbeiten anderweitig zu verwerten. Die bislang entwickelten Prototypen von OAK (= Object Application Kernel) wurden zunächst einmal der Rechtsabteilung übergeben, die erst einmal intensive Trademark-Recherchen machen mußte. Die Sun-Juristen kamen dann zu dem Schluß, das Ding in Java umzubenennen, weil sich das dann so schön urheberrechtlich schützen ließe... Als erstes wurde dann die so oft gezeigte dampfende Kaffeetasse als Applet gecodet, weil die Amis ihren Kaffee oft als Java bezeichnen.

Zeitgleich wurde HTML (= Hypertext Markup Language) auf dem Internet immer populärer, also entschied James Gosling, daß anstatt der ursprünglich vorgesehenen TV-Kanäle jetzt das Internet als Transportweg herhalten muß und schon war Java geboren.

Um nun weltweit die AnwenderInnen so richtig wild zu machen, wurde Java zum Nulltarif verteilt - und viele stürzten sich darauf, weil die Leute halt alles ausprobieren, vor allem wenn es nichts kostet. Da hat es dann auch nicht gestört, daß zwischen der ersten und zweiten Version die Formate total geändert wurden, so daß die Proggies aus der ersten Version alle weggeschmissen werden mußten...

Ist nun Java wirklich das Gelbe vom Ei? Wer weiß, daß James Gosling einst den Unix-Editor vi verbrochen hat, ist sicher ziemlich skeptisch! Gosling schuf mit Java eine neue Programmiersprache, doch halt, ist sie wirklich neu?

Wer sich unbedarft Java-Proggies (im Sun-Jargon heißen die Dinger jetzt Applets ...) ansieht, wird zunächst viele Elemente von C wiederfinden, vieles aber auch vermissen, so z. B. Zeiger, zusammengesetzte Datentypen wie struct und unions, aber auch vorzeichenlose Datentypen (also unsigned) gibt es derzeit nicht mehr. Sun behauptet ja, daß Java 100%-ig sicher sei vor bösen Hackerzugriffen. Deshalb hat man ja auch Zeiger aus dem Sprachvorrat verbannt.

Es gibt jetzt auch nur sichere Arrays, da alle Tabellen und Speicherzugriffe vom Java-Interpreter überprüft werden, ob sie zulässig sind. Ja, ihr habt richtig gelesen: Java ist keine Compiler-, sondern eine Interpretersprache! Der Java-Compiler erstellt auch keine Objektdateien, sondern sog. Class-Files, die dann vom virtuellen Java-Prozessor abgearbeitet werden.

Dieser Java-Interpreter ist so eine Art virtuelle Maschine, die über einen eigenen Befehlssatz, einen Stackpointer, einen Framepointer und lokale Variable auf dem Stack verfügt. Insgesamt also, keine weltbewegende neue Entwicklung, sondern etwas, was die JoyclerInnen mit ihrem Mallard-Basic schon lange kennen und schätzen.

Die Interpreter-Masche hat aber einen großen Vorteil: es ist ziemlich einfach, diese virtuelle Java-Maschine auf einen x-beliebigen echten Rechner umzuprogrammieren. Was das für die Software-Industrie für Folgen haben kann, haben die Knalltüten von Managern wahrscheinlich noch gar nicht gespannt. Sollte sich nämlich Java wirklich durchsetzen, dann ist es endgültig aus mit proprietären Proggies. Dann wird nämlich nur in Java gecodet, und es ist schnurzegal, auf welchem Compi dann das Teil interpretiert wird.

Wie sieht es aber mit der Sicherheit aus? Reicht es aus, alle Aktionen von dem Interpreter vorher überprüfen zu lassen? Derzeit sind folgende Schutzmechanismen vorgesehen:

  • Jedes Java-Applet (das ist der Sun-Jargon für ein Java-Proggy) wird vor dem Aktivieren vom Java-Interpreter gecheckt, ob alle Methoden und Instanzen korrekt angewendet werden.
  •  
  • Zugriffe auf Dateien sind nur in der Stand-alone-Version möglich (zum Austesten der selbst gecodeten Java-Applets gibt es eine Version, die ohne Internet-Zugriffe auskommt; die kann dann auch auf lokale Dateien zugreifen).
  •  
  • Ein-/Ausgabe, graphische und mathematische Operationen und Netzwerkaktionen können nur über vorgegebene Java-Klassen erfolgen. Es gibt hierzu einen Riesen-Stammbaum; aus dieser Ahnengalerie müssen dann die Java-Coder die gewünschten Routinen, eigentlich Methoden, ableiten.
  •  
  • Um die Speicherverwaltung darf und braucht sich der Coder nicht mehr zu kümmern, weil das der Interpreter macht; auch ein Garbage Collector wurde spendiert, der allerdings nur in den betriebsarmen Zeiten angestoßen wird. Ebenso ist ein selbstgestricktes Multi-Threading absolutes Tabu das darf nur der Java-Interpreter!

Wie geht es weiter mit Java? Nun, im Februar verabschiedeten sich führende Java-Entwickler von Sun: Arthur van Hoff war die Schlüsselfigur bei der Entwicklung der HotJava-Architektur. Sammi Shiao bastelte den Toolkit für Windows, und Kim Polese war der Java-Marketingmanager. Von der Starwave Corporation war am Projekt auch noch John Payne beteiligt, der auch von Anfang an bei OAK mitgemischt hat. Diese Leutchen wollen jetzt ihre eigene Firma gründen. Die Firma Sun sieht aber dadurch das Java-Projekt durch den Weggang führender Entwickler nicht gefährdet. In der neu gegründeten Abteilung Java-Soft sind über 50 MitarbeiterInnen beschäftigt. Obwohl das Sun-Management in der Öffentlichkeit den Eindruck zu erwecken versucht, das Ausscheiden der Java-Entwickler sei ganz normal, hat die Firmenleitung offensichtlich starke Probleme. Grund: Der Sun-Boss Scott McNealy hat höchstpersönlich seine Mannen und Frauen dazu verdonnert, den geflüchteten Java-Entwicklern keinerlei Unterstützung zukommen zu lassen!

Aber auch was die angeblich so tolle Sicherheit bei Java angeht, ist während der Cebit Ernüchterung eingetreten: Der WWW-Browser Netscape 2.0 setzt ja Javascript ein und mit verheerenden Folgen: Wer mit diesem Teil arbeitet, muß damit rechnen, daß böse Menschen dann seine lokale Festplatte total durchsuchen können; die Anwender haben da überhaupt keine Chance, das zu verhindern! Wahrscheinlich hat der Roboterentwickler Hans Moravec doch recht, als er meinte: Im digitalen Zeitalter ist die Unterscheidung zwischen Kopie und Original obsolet!

Mich verwundert es immer wieder, daß Verantwortliche meinen, mit vorgeschalteter Soft- und/oder Hardware einen wirksamen Schutz vor Eindringlingen aufbauen zu können. Bereits bei den sog. Firewall-Systemen wurde ja das in der Praxis als untauglich bewiesen. Trotzdem faseln seit der letzten Cebit viele Möchtegern-IT-Manager von NCC (= Network Centric Computing) und Intranets! Die lernen es anscheinend nie...

DangSoft, April 30th, B. E. 2539 (1996)


Abgedruckt in Klubzeitung Nr. 42