Kaffee & Kuchen
Kaffee & Kuchen
die führende deutsche
Java-Seite
von Christoph Bergmann
und Hannes Gamperl


Was ist Java? Was kann man mit Java machen? Was Java NICHT kann...

Suche

Erweiterte Suche

Kommunikation
Chat
Forum

Java-Neuigkeiten

Einführung
Was ist Java?
Wie fange ich an?
Bücher über Java

Workshops
Animacons für jeden
Chat selbst gemacht
JDBC

Wissen
Entwicklungssysteme

Ressourcen
Applet-Bibliothek
Deutsche Java-Links
Glossar
News-Archiv

K&K Intern
Pressespiegel
Auszeichnungen
Werbung auf K&K

Weitere Angebote
Milch&Zucker: DHTML
K.&Kekse: Javascript
mac.seite: Apple

Fragen, Lob & Kritik
bitte in das Forum

EMail an java@acc.de
nur, wenn es nichts Allgemeines ist.

Kaffee & Kuchen
ist ein Service von
ACCESS Internet


Einführung in Java
    "Was ist Java?"

    In einem langen Satz:

      Java ist...

    • eine neue plattformunabhängige Programmiersprache des Workstation-Herstellers Sun, die nicht nur das Internet, sondern womöglich die gesamte Computerbranche revolutionieren wird,
    • sowie natürlich die Hauptinsel Indonesiens, als auch eine kleine Insel im Pazifik, deren Hauptexportprodukt Kaffee ist
    • und damit der umgangssprachliche Ausdruck für Kaffee in den USA.


    In 6*2 Stichpunkten:

      Java ist...

    1. einfach & klein
      Daß Java einfach zu erlernen ist (wie die Entwickler von Sun meinen), dem werden Programmieranfänger wohl kaum zustimmen.
      Es ist vielmehr einfach für Leute die schon programmieren können, und zwar am besten in C++.
      Java ist nämlich eine Weiterentwicklung von C++.
      Manche Sachen, die in C++ zu kompliziert sind, wurden weggelassen, andere, die in C++ nur umständlich zu lösen sind, hinzugefügt.

      Klein = einfach (meinen die Entwickler von Sun):
      Java kann auf sehr kleinen Rechnern, mit geringer Ausstattung, laufen. Das Grundsystem (Interpreter, Standardklassen und "Thread"-Unterstützung) benötigt (laut Sun) ca. 215 KB.

    2. objekt-orientiert & verteilt
      "Objekt-orientiert" ist sicherlich eines der meist-verschlunzten Wörter ("Jetzt zugreifen: objekt-orientierte Toaster!"), das ändert jedoch nichts daran, daß es sich, aus guten Gründen, in der Software-Entwicklung durchgesetzt hat.

      Wie der Name schon sagt, konzentriert man sich bei der objekt-orientierten Programmierung auf die Erstellung sog. "Objekte". Grob gesagt besteht ein Objekt aus Daten und Funktionen (sog. "Methoden"), die diese Daten verändern. Im Idealfall erzeugt man mit objekt-orientierter Programmierung wiederverwendbare Objekte ("Klassen"). Bei fortschreitender Programmierung kann man dann auf einen immer größer werdenden Pool an schon bestehenden Objekten zurückgreifen ("Klassenbibliotheken"). Ein Satz Bibliotheken für Standardaufgaben (z.B. Ein-/Ausgabe, Graphik, usw.) wird zur Sprache mitgeliefert.

      Auf entfernt liegende Objekte können Java-Programme sehr einfach über das Internet zugreifen.
      Ob die Vision von Sun Realität wird, daß Programme nicht mehr komplett auf dem heimischen Rechner liegen, sondern benötigte Teile bei Bedarf aus dem Internet geladen werden, wird sich zeigen... (Alle hoffen es, denn dann wäre das schreckliche Micro$oft-Monopol endlich gebrochen)

    3. interpretiert & schnell
      Das klingt erstmal wie ein Widerspruch:
      Java-Programme werden nicht direkt vom Prozessor ausgeführt, sondern von einem speziellen Programm, dem sog. "Interpreter" (Im Gegensatz dazu werden bei anderen Sprachen Programme von einem sog. "Compiler" in direkt ausführbaren Code übersetzt).

      Das hat so seine seine Vor- und Nachteile:
      Einerseits entfallen beim Entwickeln verschiedene Schritte, wie z.B. das Verknüpfen verschiedener Programmteile ("Linken").
      Der große Nachteil ist -trotz aller Beteuerungen- natürlich die langsamere Ausführungsgeschwindigkeit.

      Sun hat hier jedoch einen Zwischenschritt eingefügt: Java wird von einer Art "Vorübersetzer" in sog. "Bytecode" übersetzt. Der große Vorteil bei der Entwicklung, nicht bei jeder kleinen Änderung den Compiler anschmeißen zu müssen, geht damit leider wieder verloren.

      Dieser "Bytecode" ist jedoch sehr "maschinennah" - d.h. es kann relativ einfach und schnell direkt ausführbarer Code erzeugt werden.
      Außerdem erzeugen inzwischen sog. "Just-In-Time"-Compiler aus dem "Bytecode" kurz vor der Ausführung "echten" Maschinencode des Ziel-Prozessors. Die Geschwindigkeit wird dabei um den Faktor 10 und mehr gesteigert.
      Darüber hinaus stehen spezielle, von Sun entwickelte, Java-Prozessoren vor der Tür! Diese führen Java-Programme dann direkt aus.

    4. robust & sicher
      Die Kombination Compiler UND Interpreter hat für Java unter einem anderen Gesichtspunkt große Vorteile: Einerseits kann der "Vor"-Compiler auf Typenfehler und dergleichen prüfen (Java ist eine typenstrenge Sprache), anderseits kann der Interpreter Fehler während der Laufzeit abfangen und behandeln - ein kompiliertes Programm würde schlimmstenfalls abstürzen.

      Ebenso stellt der Interpreter sicher, daß das Programm nicht auf fremde Daten zugreifen kann. Hierzu wurde das völlig offene "Zeiger"-Konzept von C++ geändert.

      Java ist tatsächlich eine relativ sichere Sprache.
      (Nichts ist wirklich sicher -es GIBT Kreditkartenbetrug und trotzdem benutzt jeder Kreditkarten-, also warum sollten es Java-Programme 100% sein?)

    5. plattformunabhängig & portierbar
      Hier wird ein Traum der Software-Entwickler wahr:
      Jeder kennt das Problem mit den verschiedenen Rechner- und Betriebssystemen. Auf dem einen läufts, auf dem anderen nicht und für Software-Entwickler ist das alles wirklich ein Graus! (Man stelle sich vor, es gäbe 10 verschiedene Video-Systeme..!)
      Auch hier greift das Compiler/Interpreter-Konzept: Der Compiler übersetzt das Programm in den "Bytecode", der völlig unabhängig von irgendeinem bestehenden Prozessor ist, auf dem das Programm später vielleicht mal läuft.

      Ein- und dasselbe Java-Programm läuft ohne Änderung auf allen unterstützten Systemen!!

      Außerdem wurden manche Ungenauigkeiten in der Sprachdefinition von C/C++ bereinigt. Diese Ungenauigkeiten führten dazu, daß manche Sachen auf verschiedenen Systemen und Compilern unterschiedlich umgesetzt wurden; z.B. kann man sich in C/C++ nie sicher sein, wie groß eine Ganzzahl ("Integer") in Bytes nun wirklich ist.
      In Java ist eine Ganzzahl, egal auf welchem System, immer 4 Bytes groß.

    6. "multithread"-fähig & dynamisch
      In einem modernen Programm passieren viele Dinge gleichzeitig. Diese Eigenschaft nennt man "multithreading" (Und mir fällt beim besten Willen keine gute Übersetzung ein) und wirft einige Probleme auf. Java unterstützt den Entwickler mit verschiedenen Funktionen beim Entwurf solcher Programme, so daß er sich auf seine eigentliche Aufgabe konzentrieren kann.

      Weiterhin ist Java durch verschiedene Verbesserungen "dynamischer" als C++. Das bedeutet: Beziehungen zwischen Klassen und Objekten sind nicht für immer festgelegt. Dadurch können diese, wenn sie sich später ändern, leichter ausgetauscht werden (Auch das funktioniert nur aufgrund des Interpreters).




    "Was kann man mit Java machen?"

    In einem Wort:
      Alles!

    In zahllosen Stichworten:

      Animationen, Laufbänder, Chats auf Web-Seiten, Animacons, Taschenrechner, Spiele, Verschlüsselungsprogramme, interaktive Web-Seiten, Musik, Textverarbeitungen, kleine Internet-Applets, riesige Programmpakete, Bildverarbeitungsprogramme, neuartige Benutzeroberflächen, Übersetzungsprogramme, Bestellsysteme, Lernanwendungen, Uhren, Tabellenkalkulationen, Rechtschreibprüfungsprogramme, usw. usw.

    In drei Absätzen:

      Java ist eine Programmiersprache! Wenn man die oben beschriebenen Vorteile nutzen will und SUN das mit der Geschwindigkeit in den Griff bekommt (und alles sieht danach aus), besteht kein Grund, warum man nicht jedes Programm in Java schreiben sollte...

      Zuerst profitiert natürlich das Internet und das WWW davon - auf allen möglichen WWW-Seiten tauchen bereits Java-Applets auf; vorerst viele kleine Spielereien, wie Animationen, aber es entstehen mehr und mehr "sinnvolle" Geschichten, wie z.B. Chats, bessere Benutzeroberflächen oder ein Home-Banking-System...

      Und wer weiß, vielleicht setzen sich ja tatsächlich die Java-Konsolen durch...





    "Was Java NICHT kann..."

    In einem kurzen Satz:
      Kaffee kochen... ;-)

    Im Ernst:

      Durch das Sicherheitssystem der virtuellen Java-Maschine sind direkte Zugriffe auf die Hardware nicht erlaubt (Ein Java-Programm kann ja auch auf unterschiedlichen Plattformen laufen, es weiss also garnicht, welche Hardware verfügbar ist), damit sind Hardware-nahe Programme wie z.B. Treiber nicht möglich...


    Original-Text vom 8.4.1996
Nach oben

© 1998 Christoph Bergmann / ACCESS Internet. Alle Rechte vorbehalten.