Java/Mit höchster Fahrt auch über die nächsten Klippen?

Eine Entwicklung ohne Parallelen in der DV

12.06.1998

Damals umfaßte Java nicht viel mehr als eine objektorientierte Sprache, eine relativ langsame virtuelle Maschine und eine handvoll Programmierschnittstellen (APIs). Die erlaubten es gerade einmal, netzwerkfähige Applets in HTML-Seiten einzubauen und Websurfer mit bunten Bildchen und Sound zu erfreuen. Doch die neue Programmiersprache offenbarte bald mehr Potential für die Anwendungsentwicklung, weswegen in kurzer Zeit mehr Bücher über Java erschienen als in zehn Jahren über C++.

Die enorme Nachfrage deckte aber auch Schwächen auf, worauf Sun mit der Version 1.1 reagierte. Von bisher neun auf 23 Bibliotheken, sogenannte Packages, angewachsen, hatte Java nun die Funktionalität, die für die meisten Programmieraufgaben nötig war. Drittanbieter entwickelten einige zusätzliche Werkzeuge und Bibliotheken. Java 1.1 ist seither der Release-Stand, den die meisten Entwicklungswerkzeuge unterstützen.

Inzwischen sind die Applikationen und Bibliotheken, die in irgendeiner Form etwas mit Java zu tun haben, auch von Experten nicht mehr zu überblicken. Allein der Umfang der Kernbibliotheken, die auf jeder Plattform zur Verfügung stehen, umfaßt neben Netzwerkklassen und Grafikroutinen komplexe Komponenten für die Gestaltung von Benutzeroberflächen sowie den Zugriff auf relationale ebenso wie auf objektorientierte Datenbanken. Auch für die Modellierung komplexer Geschäftsprozesse und Applikationen existieren reine Java-Implementierungen.

Der Fokus liegt also nicht mehr wie anfangs auf der Erstellung von Browser-Applets, sondern vielmehr auf eigenständigen Applikationen. Heute empfehlen einige Experten sogar, Java verstärkt auf der Server-Seite einzusetzen, beispielsweise anstelle von CGI-Skripten.

Ein weiteres Anwendungsgebiet von Server-seitigem Java sind Applikationen in mehrschichtigen Client-Server-Architekturen. Microsoft empfiehlt bekanntlich, auf dem Client sollte Dynamic HTML zum Einsatz kommen, während man mit Java Business-Komponenten für Microsofts Transaktions-Server entwickeln solle.

Für die Windows-Welt mag diese Ausrichtung naheliegen, doch wie steht es mit den anderen Plattformen? Nicht jede verfügt über das von Microsoft kommende Component Object Model (COM). Demgegenüber verfolgt die Java-Gemeinde als Standard eher Common Object Request Broker Architecture (Corba).

Doch warum sollte man auf der Windows-Plattform das recht flotte COM durch Corba ersetzen, wenn in den unternehmensweiten Intranets sowieso nur Windows läuft? Auch ein weiteres Argument der Windows-Freunde ist nur schwer von der Hand zu weisen: Java ist momentan zu langsam. Und wenn dann noch Corba hinzukommt, kann von Performance kaum mehr die Rede sein.

Turbolader für die virtuelle Maschine

Doch hier ist neben dem bisher eingesetzten Just-in-time-(JIT-)- Compiler eine Beschleunigung auf Basis der virtuellen Maschine in Sicht. Sun arbeitet derzeit an der sogenannten Hotspot-VM, die laut Ankündigungen von Sun die Verarbeitungsgeschwindigkeit von Anwendungen auf C++-Niveau anheben soll.

Momentan herrscht in der Entwicklergemeinde eine gewisse Unsicherheit, was die vielen verschiedenen Formen der Java Development Kits (JDK) angeht. Neben den Versionen 1.02, 1.1 und dem Beta-Release 1.2 gibt es noch zahlreiche Bug-Fix-Versionen, die in Browsern selten vorzufinden sind. Anstatt komplett auf Browser zu verzichten, bietet Sun hier eine Vereinheitlichung über die Tools "Activator" beziehungsweise "Java Jumpstart" an.

Damit ersetzt also die jeweils aktuellste Version des JDK von Sun die Java-Funktionalität der Browser von Netscape und Microsoft. So lassen sich sogar ältere Browser (Navigator 3 und MS Internet Explorer 3) mit aktueller Technologie wie dem JDK 1.2 ausstatten.

Vermißte Funktionalitäten kommen schnell heraus

Java bietet eine Menge an Funktionalität, verfügbar auf zahlreichen Plattformen. Allerdings haben Entwickler viele dort schon vorhandenen Funktionalitäten nachgebildet und dabei vor allem die gemeinsamen Eigenschaften aller Plattformen unterstützt. Dies ist einerseits unbefriedigend für die Anwender und bietet andererseits Argumente für Spaltungstendenzen.

Nehmen wir als Beispiel nur einmal die 3D-Funktionalität unter Windows. Microsoft hat Direct-X als einheitliche Schnittstelle vorgesehen, während Sun eine 3D-API entwickelt, die diese Funktionalität erst nachbilden muß. Microsoft vertritt die Ansicht, Java sei eine ausgezeichnete Sprache für die Windows-Programmierung, während der Rest der Welt auf die Plattformunabhängigkeit der Sun-Technologie setzt.

Momentan fehlen Java einige selbstverständliche Funktionen, die seit langem Bestandteil jeder Applikation sind. Als Beispiele seien hier Drag & Drop, Druckfunktionen oder Komponenten für ansprechende Benutzeroberflächen genannt. Mit den Java Foundation Classes und dem JDK 1.2 wird endlich Abhilfe geschaffen, doch für die Entwicklung von Server-seitigen Komponenten fehlen noch klare Definitionen.

Die Enterprise Javabeans, die letztes Jahr zur Java One angekündigt wurden, nehmen Formen an. Mit der Java-Help-API wird endlich die Erstellung von Online-Hilfesystemen auf Basis einer einzigen Schnittstelle ermöglicht.

Multimedia-Voraussetzungen und flexible 2D-Funktionen finden sich ebenfalls im bald erscheinenden JDK 1.2 wieder.

Im Bereich der Werkzeuge für die Applikationsentwicklung hat sich mittlerweile ein Generationenwechsel vollzogen. Legten die Tools der ersten Generation noch den Schwerpunkt auf die Applet-Entwicklung ohne jegliche Datenbankanbindung, so findet man heute kaum noch ein Werkzeug ohne Unterstützung des JDK 1.1, meistens ist Datenbankfunktionalität eingebaut.

Die erfolgreichsten Vertreter dieser zweiten Generation sind Borlands "JBuilder", Symantecs "Visual Café" und IBMs "Visual Age für Java". Auch wenn JBuilder in vielen Projekten das Rennen macht, muß man sich vor Augen halten, daß jedes noch so gute Java-Entwicklungswerkzeug der Einäugige unter den Blinden ist. Java ist noch etwas zu jung, um auf Perfektion pochen zu können. Hier werden sicher noch einige Jahre ins Land gehen.

Das bedeutet allerdings nicht, daß Java generell unreif für die Lösung der anstehenden Probleme ist. Jede Menge Projekte bei den verschiedensten Großfirmen sind erfolgreich verlaufen, und erste kommerzielle Applikationen erscheinen auf dem Markt.

Für Java-Programmierer herrschen paradiesische Zeiten. 1998 scheint in vielen Firmen der Startschuß für Java-Projekte gefallen zu sein. Unzählige Ausbildungsmaßnahmen finden statt, und innovative Projekte werden ins Leben gerufen. Oft haben die Geschäftsführer der Firmen solche Projekte initiiert, was unter anderem auf den hohen Aufklärungsgrad über Java zurückzuführen ist. Java ist ungeachtet seiner technischen Facetten zum Instrument für die Kostensenkung bei der IT-Entwicklung geworden.

Kommt mit Java der große Integrator?

Während heute die Entwicklung von plattformneutralen Java-Applikationen vorherrscht, soll schon in naher Zukunft die Server-Welt integriert werden. Auch die Integration in vorhandene Systeme und Applikationen ist eine große Herausforderung. Als Beispiel sei hier nur die Integration von Java und IBMs AS/400 genannt, die ein enormes Potential bietet und auch hier langsam, aber sicher den grünen Bildschirm verbannen wird.

Es ist nicht nötig, einen Gewinner aus dem Lagerstreit zwischen Microsoft und dem Rest der Welt vorherzusagen. Denn wer die Plattformneutralität von Java nicht benötigt, aber die Effektivität der Sprache für Windows nutzen will, ist bei Microsoft bestens aufgehoben. Es gibt nun wirklich keinen Grund, warum jemand für ein Win32-Projekt von Java wieder auf C++, Visual Basic oder Delphi umsteigen sollte. Somit sollten reine Java-Programme ein Logo erhalten, das nativen Programmen, die nur die Sprache verwenden, verwehrt bleibt.

Ob allerdings die C++-Entwickler auf Java umsteigen, bleibt fraglich - und ob Microsoft mit seiner Strategie Erfolg haben wird, ebenfalls. Denn unlängst kamen zur Microsoft Visual-J++-Konferenz nach Los Angeles lediglich einige hundert Teilnehmer, während zur "Java-One" von Sun mehr als 14000 Entwickler anreisten. Gleichwohl ist die Vorherrschaft von Windows ungebrochen.

Angeklickt

Die Zeiten, in denen Java nicht viel mehr bot, als dem Traum Tausender Entwickler von einer plattformunabhängigen Sprache nahezukommen, sind schnell vorübergegangen. So rasch, wie Defizite beklagt wurden, schlossen sich die meisten Lücken. Das in Kürze anstehende Release 1.2 wird der Kritik noch mehr Wind aus den Segeln nehmen. Auch wenn manche technische Begründung für die Spaltungstendenzen von Microsoft nicht ganz abwegig war, ist das Votum der Entwickler für "100 percent pure Java" eindeutig - was die Marktverhältnisse aber nicht gleich auf den Kopf stellt. Ein Ausblick fällt eindeutig optimistisch aus.

Frank Sterkmann ist Geschäftsführer der Object International Software GmbH in Stuttgart.