Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger

Java ist auch eine Insel von Christian Ullenboom
Programmieren für die Java 2-Plattform in der Version 5 (Tiger-Release)
Buch: Java ist auch eine Insel
gp Kapitel 1 Schon wieder eine neue Sprache?
  gp 1.1 Der erste Kontakt
  gp 1.2 Historischer Hintergrund
  gp 1.3 Eigenschaften von Java
    gp 1.3.1 Bytecode und die virtuelle Maschine
    gp 1.3.2 Kein Präprozessor
    gp 1.3.3 Keine überladenen Operatoren
    gp 1.3.4 Zeiger und Referenzen
    gp 1.3.5 Bring den Müll raus, Garbage-Collector
    gp 1.3.6 Ausnahmenbehandlung
    gp 1.3.7 Objektorientierung in Java
    gp 1.3.8 Java-Security-Model
    gp 1.3.9 Wofür Java nicht geeignet ist
  gp 1.4 Java im Vergleich zu anderen Sprachen
    gp 1.4.1 Java und JavaScript
    gp 1.4.2 Normierungsversuche
    gp 1.4.3 Die Rolle von Java im Web
    gp 1.4.4 Vollwertige Applikationen statt Applets
  gp 1.5 Entwicklungs- und Laufzeitumgebungen
    gp 1.5.1 Aller Anfang mit dem Java SDK
    gp 1.5.2 Die Entwicklungsumgebung von Sun: Sun ONE Studio und NetBeans
    gp 1.5.3 IBM und Eclipse
    gp 1.5.4 JBuilder von Borland
    gp 1.5.5 Together
    gp 1.5.6 Ein Wort zu Microsoft, Java und zu J++
    gp 1.5.7 Direkt ausführbare Programme
  gp 1.6 Installationsanleitung für das Java 2
    gp 1.6.1 Das Java 2 SDK beziehen
    gp 1.6.2 Java SDK unter Windows installieren
    gp 1.6.3 Compiler und Interpreter nutzen
    gp 1.6.4 Installation der Java Laufzeitumgebung (1.4) unter Linux
  gp 1.7 Das erste Programm compilieren und testen
    gp 1.7.1 Häufige Compiler- und Interpreterprobleme
  gp 1.8 Eclipse
    gp 1.8.1 Eclipse starten
    gp 1.8.2 Das erste Projekt anlegen
    gp 1.8.3 Eine Klasse hinzufügen
    gp 1.8.4 Übersetzen und Ausführen
    gp 1.8.5 J2SDK statt JRE
    gp 1.8.6 Start eines Programmes ohne Speicheraufforderung
    gp 1.8.7 Java 5.0 in Eclipse
    gp 1.8.8 Projekt einfügen oder Workspace für die Aufgaben wechseln
    gp 1.8.9 Plugins für Eclipse


Galileo Computing

1.4 Java im Vergleich zu anderen Sprachedowntop

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 werden.

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.


Galileo Computing

1.4.1 Java und JavaScript  downtop

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.«


Galileo Computing

1.4.2 Normierungsversuche  downtop

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!


Galileo Computing

1.4.3 Die Rolle von Java im Wedowntop

Es ist nicht untertrieben, dem Web eine Schlüsselposition in der Verbreitung von Java zuzuschreiben. Ohne die weltweite Verbreitung des JDK von Sun wäre Java eine Nischenprogrammiersprache mit ungewisser Zukunft. Populär wurde Java in erster Linie durch die Applets, Java-Programme, die vom Browser dargestellt werden. Netscape war eine der ersten Firmen, die einen Java-Interpreter in ihren Web-Browser integrierten. Auch der Internet Explorer (kurz IE) von Microsoft akzeptiert Applets, doch er kommt nicht über die Version 1.1.4 hinaus. Da jedoch der IE sehr verbreitet ist, hat sich die Begeisterung über Applets weitgehend verflüchtigt. Für Softwareentwickler ist es sehr aufwendig, für die gesamte existierende Vielfalt der Java-Versionen zu programmieren.

Verweise auf Applets werden in eine HTML-Datei eingebettet, und der Browser holt sich eigenständig die Applets über das Netz und führt sie mit seiner virtuellen Maschine aus. Obwohl Applets ganz normale Java-Programme sind, gibt es verständlicherweise einige Einschränkungen. So dürfen Applets nicht – es sei denn, sie sind signiert – auf das Dateisystem zugreifen und wild irgendwelche Dateien löschen, was Java-Applikationen problemlos können.


Galileo Computing

1.4.4 Vollwertige Applikationen statt Applettoptop

Obwohl Java durch das Web bekannt geworden ist und dort viele Einsatzgebiete liegen, ist es nicht auf dieses Medium beschränkt. Viele Firmen entdecken ihre Zuneigung zu dieser Sprache und können sich nicht mehr von ihr lösen, unter ihnen IBM. Es hat sich gezeigt, dass die Devise »write once, run anywhere« auf der Server-Seite weitgehend zutrifft. Java ist inzwischen wohl die wichtigste Sprache für die Gestaltung von Internet-Applikationen auf dem Server. Sie unterstützt strukturiertes und objektorientiertes Programmieren und ist ideal für größere Projekte, bei denen die Unsicherheiten von C++ vermieden werden sollen.

Nach dem anfänglichen Hype heißt es heute paradoxerweise oft, dass Java zu langsam für Client-Anwendungen sei. Dabei sind die virtuellen Maschinen aufgrund der Entwicklung von JIT-Compilern und der Hotspot-Technologie in den letzten Jahren sehr viel schneller geworden. Auch die Geschwindigkeit der Prozessoren ist ständig weitergewachsen. Anwendungen wie in Java geschriebene Entwicklungsumgebungen zeigen, dass auch auf der Client-Seite Programme in angemessener Geschwindigkeit laufen können – entsprechend viel Arbeitsspeicher vorausgesetzt. Da ist Java nämlich mindestens so anspruchsvoll wie neue bunte Betriebssysteme von MS.






1   Diese Möglichkeit ist unter dem Namen »RMI« (Remote Method Invocation) bekannt. Bestimmte Methoden können über das Netz miteinander kommunizieren.





Copyright © Galileo Press GmbH 2004
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de