Jahresrückblick/Sun und Microsoft: Krieg mit allen Mitteln

Java bleibt im Spiel: Die Rebellenallianz hat gute Karten

19.12.1997

Als am 18. Februar 1997 das Java Developer Kit 1.1 (JDK) erschien, waren die Veränderungen gegenüber der vorhergehenden Version 1.02 äußerst weitreichend: Aus einer Sprache zum Schmücken von Web-Seiten war mit einem Schlag die Internet-Programmiersprache der Wahl geworden. Möglich wurde dies durch das neue Komponentenmodell Java Beans, eine deutlich verbesserte Schnittstelle zur Programmierung der grafischen Benutzeroberfläche, durch die Datenbank-Schnittstelle JDBC und einen Standard zur Netzwerkinteroperabilität namens RMI (Remote Method Invocation). Die neuen Möglichkeiten waren so überzeugend, daß viele Java-Projekte sogleich auf die neue Versionsnummer umstellten. Zahlreiche Nachbesserungen und kleinere Erweiterungen folgten im Abstand von vier bis acht Wochen; inzwischen ist die Version 1.1.4 erreicht.

So erfreulich die Veränderungen einerseits waren, stellten sie für die Programmierer doch ein Problem dar, da einige wesentliche Punkte, etwa die Ereignisbehandlung, nicht abwärtskompatibel waren. Die beiden großen Browser-Hersteller Netscape und Microsoft sollten mehr als ein halbes Jahr brauchen, um sich auf die veränderte Java-Spezifikation einzustellen. Und nun, zu Jahresende, sind beide noch nicht vollständig JDK-1.1-konform: Microsofts Produkt aus offensichtlich politischen Gründen. Über die Ursachen der verfehlten Produktpolitik von Suns Bündnispartner Netscape kann man dagegen nur spekulieren. Auf jeden Fall mußte der Browser-Produzent im November sein JDK-1.1-Logo von seiner Website entfernen.

Neben der Etablierung und Überarbeitung des JDK 1.1 hat die Firma Sun, die Java erfunden und entwickelt hat, eine Reihe von Programmier-Schnittstellen (APIs) spezifiziert und auf den firmeneigenen Web-Seiten zur Diskussion gestellt. APIs zur Sound- und fortgeschrittenen Grafikbearbeitung, zur Sprachbearbeitung und Telephonie, für Applets, die auf dem Server laufen, zum Netzwerk-Management, für geschäftsbezogene Java Beans etc. wurden und werden auf diese Weise um die Kernklassen von Java gruppiert und stellen Java-Programmierern eine Funktionalität zur Verfügung, die kein Betriebssystem offeriert.

Viele dieser APIs sollen in das JDK 1.2 integriert werden, das im April 1997 für den Sommer angekündigt worden war. Nach mehreren Verschiebungen ist die neue virtuelle Maschine nun für das zweite Quartal 1998 avisiert und soll unter anderem mittels einer als "Hotspot" bezeichneten Technologie den Ablauf von Java-Programmen deutlich beschleunigen.

MS-Motto: Java aufsplitten und vernichten

Der Branchenriese IBM scheint alles auf die Karte Java zu setzen; mit gewaltigen Investitionen im Bereich Java entwickelte man virtuelle Maschinen für alle Betriebssysteme des blauen Giganten und schuf somit die Voraussetzung dafür, die riesige Menge an Firmendaten, die sich auf IBM-Servern befinden, mittels Applets und Servlets aus den engen Fesseln eines proprietären Systems zu befreien und übers Netz zugänglich zu machen.

Diese rasante Entwicklung wird von dem Konflikt zwischen Sun und Microsoft begleitet. Der Quasimonopolist aus Redmond, der aufgrund seiner Geschäftspraktiken inzwischen in das Visier von Verbrauchervertretern und des amerikanischen Justizministeriums geraten ist, sieht seine Herrschaft weniger durch die Programmiersprache Java als durch die virtuelle Maschine samt aller APIs gefährdet. Der Versuch des Unternehmens, sich auch hier seinen Einfluß zu sichern, begann am 22. Januar mit der ersten Vorführung der Application Foundation Classes (AFC), die angebliche Schwächen der Java-API ausgleichen sollten. Auf der Java-One-Entwicklerkonferenz Anfang April, am gleichen Tag, an dem Microsoft eine erste Entwicklerversion der AFC vorlegte, kündigten Sun, Netscape und IBM die gemeinsame Entwicklung der Java Foundation Classes (JFC) an. Teil der JFC soll auch Netscapes Eigenentwicklung IFC werden. Beide versprachen für Ende des Jahres Enterprise-Versionen für Server-Umgebungen. Bereits am 7. Juli veröffentlichte die Java-Allianz eine frühe Vorabversion der JFC, um die Entwicklergemeinde davon abzuhalten, auf den Microsoft-Zug zu springen.

Microsofts nächster Schachzug war direkt gegen den wichtigsten Anspruch gerichtet, der von Java-Anhängern vorgebracht wird: die Plattformunabhängigkeit. Die MS-Implementierung der virtuellen Maschine für Windows 32 bot Programmierern bereits die Möglichkeit, auf Active-X-Funktionen zuzugreifen. Programme, die solche Funktionen verwenden, sind aber nur noch unter Windows lauffähig. Einige Marktbeobachter hatten deshalb bereits im Office-König den eigentlichen Adressaten der 100-Prozent-Pure-Java-Kampagne gesehen, die Sun im Dezember 1996 ins Leben gerufen hatte und in die die Firma 1997 viel Zeit und Geld investiert hat. Am 18. Juni machte Microsoft seine J/Direct-Technologie bekannt, mit der Java-Programmierer direkt auf die Win-32-API zugreifen können - und sich damit endgültig vom Java-Mantra "Write once, run everywhere" verabschieden.

Die Diskussionen in Entwickler- und Entscheiderkreisen, ob es Redmond gelingen würde, Java aufzusplitten und damit zu vernichten, erhitzten sich noch mehr, als am 8. August bekannt wurde, daß Microsofts 150-Millionen-Dollar-Abkommen mit Apple auch die Java-Entwickler betraf: Apple würde den Internet Explorer 4.0 und die Implementierung der virtuellen Maschine von Microsoft übernehmen. Damit hatte der Windows-Macher erfolgreich ein Mitglied der Rebellenallianz - Sun, IBM, Netscape, Apple -, so genannt nach den Helden der Weltraumsaga "Star Wars", aus der gegnerischen Front gebrochen.

Microsoft ließ nur wenige Tage später siegesgewiß verlauten, daß die JFC niemals mit dem Internet Explorer oder Windows ausgeliefert werden. Und man hatte Anfang des Jahres auch eine Enterprise-Version der AFC. Schon im August allerdings konnte man von Firmen lesen, die ihre anfängliche Unterstützung der AFC zurückzogen, als sie ihre verfängliche Situation erkannten: Die Kunden von Java-Produkten verlangen gerade nach der Plattformunabhängigkeit der Sprache - ansonsten könnte es ihnen ja gleichgültig sein, in welcher Sprache programmiert wird. Nachdem im November bekannt wurde, daß das Erscheinen der AFC-Enterprise-Version auf unbestimmte Zeit verschoben wurde und Entwickler klagten, die ausgelieferten AFC seien nicht portabel und von Microsofts virtueller Maschine abhängig, wird der Windows-Spezialist einiges tun müssen, um das Terrain, das er bei den Entwicklern verloren hat, wiederzugewinnen.

Als Microsoft ankündigte, man werde die AFC mit dem Internet Explorer ausliefern und außerdem einige der ungenehmeren Features des JDK 1.1, nämlich JNI zur Integration von Javacode mit RMI, nicht unterstützen, drohte Sun Ende September, eine Woche vor dem angekündigten Erscheinen des Explorers, mit einem Entzug der Java-Lizenz und reichte nach der Prüfung des IE 4.0 eine entsprechende Klage ein, die von Microsoft postwendend mit einer Gegenklage beantwortet wurde. Doch das eigentliche Ziel dieser juristischen Scharmützel sind die Entwickler, die jeder für sich zu gewinnen oder wenigstens so weit zu verunsichern sucht, daß sie keine Entscheidung treffen. Nur so ist der Umstand zu erklären, daß die beiden Kontrahenten ihre vorher geheimen Lizenzverträge inzwischen offengelegt haben, um die Branche von der Berechtigung ihres Anspruchs zu überzeugen.

Eine wenig ehrenhafte Manipulation

Dieser Krieg scheint von den beiden Seiten mit allen Mitteln geführt zu werden - zumindest scheint die Fachpresse ihnen inzwischen einiges zuzutrauen. Anfang November mußte sich Sun mit der Anschuldigung auseinandersetzen, das Unternehmen habe die vorteilhaften Benchmark-Ergebnisse im Vergleichstest der Just-in-time-Java-Compiler einer wenig ehrenhaften Manipulation des Compilers zu verdanken. Fast zur gleichen Zeit fand jemand heraus, daß eine kleinere Marktforschungsfirma, die Java Negativschlagzeilen beschert hatte, schon mehrmals für Microsoft tätig gewesen war. Die Ergebnisse der Studien weisen deutliche Parallelen mit Vorwürfen auf, die aus Redmond in Richtung Sun gerichtet werden. Der Marktforscher wollte den Namen seines Auftraggebers nicht nennen, was nicht eben zur Zerstreuung des Verdachts beitrug - wissen doch viele, daß andere Umfragen, von größeren Instituten, ein sehr viel positiveres Bild von der Programmiersprache des Internet gezeichnet haben.

Dem Uneingeweihten mögen einige Schachzüge im Kampf um den Publikumsliebling Java rätselhaft erscheinen. Wie können etwa die Firmen Intel und Microsoft Sun vorwerfen, der Konkurrent hätte zuviel Kontrolle über Java und solle diese doch an ein internationales Standardisierungskomitee abgeben, wie es Mitte September geschah? Dieselben Firmen schützen selbst Buchstabenkombinationen wie MMX, um ihren Konkurrenten das Leben schwerer zu machen, und haben sogar, wie im Falle von MS, ein notorisch schlechtes, soll heißen untreues Verhältnis zu den selbstgesetzten De-facto-Standards. Die Antwort ist recht einfach.

Anfang Januar 1997 hatte sich Sun erstmals mit einem Komitee der International Standards Organization (ISO) getroffen, um die Standardisierung von Java zu besprechen. Alle Beteiligten wiesen jedoch darauf hin, daß es längere Zeit - eine Sun-Sprecherin schätzte rund zwei Jahre - dauern würde, bis der Vorgang abgeschlossen wäre. Das wäre immer noch recht schnell. C++ hatte acht Jahre gebraucht, bis es alle Gremien und Abstimmungen überstanden hatte. Der offizielle Antrag Suns, zuständiger Antragsteller für Java-Spezifikationen, kurz PAS, zu werden, folgte am 17. März. Allerdings machten die Java-Erfinder aus Cupertino gleichzeitig deutlich, daß sie zwar die Spezifikation der virtuellen Maschine, der Klassenbibliotheken und der Sprache selbst an ein gemeinsames Komitee, bestehend aus ISO und IEC (International Electrotechnical Commission), übergeben wollten, nicht aber das geschützte Warenzeichen "Java" und die Kontrolle über den Quellcode der Java-Technologien.

Plattformunabhängig und ein "Hang zum Toaster"

Wie in der anschließenden öffentlichen Diskussion bald klar wurde, wäre Sun das erste kommerzielle Unternehmen, das den Status eines PAS zuerkannt bekäme. Microsoft, HP und Compaq stellten im Mai in einem offenen Brief die guten Absichten ihres Konkurrenten in Frage; besonders stießen sie sich daran, daß Sun weiterhin die Rechte am Namen Java behalten wollte. So war es nicht überraschend, als sich das US-amerikanische technische Komitee der ISO, dem auch HP angehört, Anfang Juni gegen eine Zulassung Suns als PAS-Verantwortlicher aussprach. Ende Juli waren die Ergebnisse aus den anderen Ländern, die in der ISO vertreten sind, eingetroffen: Drei Länder stimmten mit Ja, fünf stimmten ebenfalls mit Ja, allerdings mit Kommentar, und 15 lehnten es mit Kommentar ab. Damit begann die zweite Runde, die am 17. November mit der Anerkennung Suns als Vertreter des Standardisierungsprozesses für Java endete. 20 der 27 Teilnehmer stimmten zu, nur China und die USA lehnten es ab, Sun diese einzigartige Rolle zuzuerkennen.

Es läßt sich nur schwer abschätzen, welche Auswirkungen der Ausgang des juristischen Kampfs zwischen Microsoft und Sun haben wird. Vielleicht ist die Beantwortung dieser Frage aber auch gar nicht mehr wichtig. Java hat sich schon jetzt als das richtige Mittel erwiesen, Daten, die auf proprietären System gefangen liegen, über das Inter- oder Intranet zugänglich zu machen - unabhängig vom Betriebssystem des Datenverwenders. Auch auf der Server-Seite hat sich Java dabei als stabil und, allen Unkenrufen zum Trotz, auch plattformunabhängig erwiesen. Dazu kommt Javas Hang zum Toaster. Bekanntlich war der Gedanke an intelligente Brotröster ein wichtiger Ansporn für die Entwicklung von Oak, wie Java anfangs genannt wurde. Zwar blieb dieser Markt der intelligenten Geräte, zu denen zum Beispiel Set-top-Boxen fürs digitale Fernsehen, Telefone und anderes zählen, anfänglich verschlossen; er scheint sich aber inzwischen zu öffnen: Ende September gab Rockwell die Produktion des ersten Java-Chips bekannt, also eines Mikroprozessors, der direkt Java-Code abarbeiten kann. Insbesondere Smartkarten sollen ein Einsatzgebiet solcher Chips werden, wenn es nach deren Produzenten und Vertreibern geht. Schon im Februar hatten die führenden Smart-card-Hersteller Schlumberger und Gemplus die Entwicklung eines gemeinsamen Systems, basierend auf der Java-Card API, angekündigt, und im Herbst bekräftigte die Firma Visa ihre Absicht, auf Smart cards mit Java-Chips umzusteigen. Java wird also ganz sicher erst einmal im Spiel bleiben. Zu viele Kräfte und Interessen arbeiten im Augenblick für die Rebellenallianz.

Angeklickt

Der Siegeszug der neuen Programmiersprache Java läßt sich an vielen Parametern ablesen: Virtuelle Maschinen für Java-Programme existieren inzwischen für nahezu alle Plattformen zumeist in einer JDK-1.1-Version. Entwicklungsumgebungen, die den modernsten Ansprüchen genügen, sind von den einschlägigen Produzenten in diesem Bereich, IBM (Visual Age for Java), Borland (JBuilder), Microsoft (J++) und Symantec (Visual Cafe), auf den Markt gebracht worden; inzwischen soll es weltweit 300000 bis 500000 Java-Programmierer geben, und die Zahl verfügbarer Java-Produkte wächst ständig. Hatte eine Untersuchung Anfang März noch ergeben, daß Java auf lediglich 30000 der 20 Millionen Web-Seiten eingesetzt wurde (Active X übrigens nur auf 400), so schwanken am Jahresende - je nach Suchmaschine - die Zahlen zwischen 500000 und 1000000. Weltweit gibt es inzwischen mehr als 900 Bücher über Java.

*Fotis Jannidis ist freier Autor in München.