1.4 Java im Vergleich zu anderen Sprachen
Beschäftigen sich Entwickler mit dem Design von Programmiersprachen, so werden häufig existierende Spracheigenschaften auf ihre Tauglichkeit überprüft und dann in das Konzept aufgenommen. Auch Java ist eine fließende und sich entwickelnde Sprache, die viele Merkmale von anderen Sprachen aufweist. Zunächst basierte Java sehr stark auf C++, bis die Entwickler Inkonsistenzen der Sprache nicht übernehmen wollten. Bisweilen wird Java auch als der Nachfolger von C++ angesehen. Auf den ersten Blick erinnert die Syntax sehr stark an C und C++. In der Tat wurden fast alle Anweisungen und Operatoren übernommen. Da viele Konzepte nur von anderen Programmiersprachen übernommen sind, ist die Sprache im Jahr 1996 an sich keine Revolution. Java vereinigt vielmehr bekannte und bewährte Konzepte.
Das Klassenkonzept - und damit der objektorientierte (OO-)Ansatz - wurde nicht unwesentlich durch SIMULA und Smalltalk inspiriert. Die Schnittstellen (engl. interfaces), die eine elegante Möglichkeit der Klassenorganisation bieten, sind an Objective-C angelehnt - dort werden sie lediglich Protocols genannt. Während in Smalltalk alle Objekte dynamisch verwaltet werden und in C++ der Compiler statisch Klassen zu einem Programm kombiniert, mischt Java auf eine sehr elegante Art und Weise dynamisches und statisches Binden. Klassen können zur Laufzeit geladen werden, Methoden auch auf anderen Rechnern ausgeführt und Ergebnisse über das Netz geschickt werden1.
Nicht direkt mit der Sprache, aber mit der Anwendung sind die Threads verbunden, das sind leicht zu erzeugende Ausführungsstränge, die unabhängig voneinander arbeiten können. Diese leichtgewichtigen Prozesse gibt es beispielsweise in Solaris.
1.4.1 Java und JavaScript
Obacht ist beim Gebrauch des Namens »Java« geboten. Nicht alles, bei Java im Wortstamm auftaucht, hat auch tatsächlich etwas mit Java zu tun; JavaScript hat keinen Bezug zu Java. Die Programmiersprache wurde von Netscape entwickelt. Dazu aus dem Buch »The Java Developer's Resource« ein Zitat: »Java and JavaScript are about as closely related as the Trump Taj Mahal in Atlantic City is to the Taj Mahal in India. In other words Java and JavaScript both have the word Java in their names. JavaScript is a programming language from Netscape which is incorporated in their browsers. It is superficially similar to Java in the same way C is similar to Java but differs in all important respects.«
1.4.2 Normierungsversuche
Der Normierungsversuch, aus Java eine Programmiersprache unter ISO-Norm zu machen, ist unter anderem daran gescheitert, dass Sun den Namen »Java« weiterverwenden wollte. Dies wäre bei der Norm nicht möglich gewesen. Das Argument ist aber etwas schwach. In der Praxis gibt es auch andere Programme, die bei den Anwendern den offiziellen ISO-Namen tragen und in der Öffentlichkeit ihren ursprünglich aussprechbaren Namen behielten. Die ISO-Norm ist gescheitert. Auch die zweite Normierungsinstanz ECMA lehnte eine Standardisierung ab, da Sun unter allen Umständen verhindern wollte, dass Java in verschiedene Dialekte zerfällt. Aus diesem Grunde hat sich Sun die alleinige Kontrolle über die Weiterentwicklung des Java-Standards vorbehalten. Ein öffentlicher Standard hat aber gerade die Eigenschaft, dass Mitglieder neue Ideen einbringen können. Als Antwort auf Microsofts Forderung, das Java-Warenzeichen allgemein freizugeben, fordert Sun lapidar, dass auch Microsoft die Windows-APIs und das Warenzeichen frei geben sollten. Kein Kommentar von MS!
1 Diese Möglichkeit ist unter dem Namen »RMI« (Remote Method Invocation) bekannt. Bestimmte Methoden können über das Netz miteinander kommunizieren.
|