Warum Java?

Als das Internet noch in den Kinderschuhen steckte... – Falsch, neuer Ansatz! Also, als das Weben am
„World Wide Web“ begonnen wurde, noch genauer, als der größte Teil der Menschheit von diesem Weben am WWW endlich Kenntnis nahm, da ging ein „Hype“ um diesen Globus: J-A-V-A!!

Also machte sich auch meiner-einer auf und installierte brav das Entwicklungskit, das man schon damals bei der Firma Sun Mircosystems kostenlos herunterladen konnte. Ich testete die mitgelieferten Programmbeispiele und freute mich an bunten Bildchen, hüpfenden Figuren und tanzenden Molekülketten.

„Schön, sicherlich gut zur Didaktik“, formulierte ich meine ersten Eindrücke. „Wer eine konsequent objektorientierte Programmiersprache von der Pique auf erlernen will, findet hier ein unschlagbar preisgünstiges Entwicklungssystem. Eine ideale Spielwiese für chronisch an Finanzierungslücken leidende Universitäten.“ Dann löschte ich das Ganze wieder und kehrte zu meiner regulären Arbeit am PC zurück.

Jedesmal, wenn ein Praktikant sich unvorsichtiger Weise in meine Obhut begab/begeben wurde, dann brachte er das „neueste“ Entwicklungssystem von der Uni mit und ich war angetan von einer bunten Welt von aufeinander bezogenen Klassen und den daraus abgeleiteten Objekten, die in schier mannigfaltig Weise miteinander in kommunikative Verbindung treten konnten, wenn man nur gewusst hätte, was wie mit wem in Beziehung zu setzen wäre. Dann löschten wir das Ganze wieder brav, und gingen unserer Arbeit nach.


Von Delphi keine Spur...?

Letztes Jahr (2004) war ich mit einem Projekt beschäftigt, das ich in Delphi zu realisieren begonnen hatte, als ich überlegte, ob ein Wechsel auf die aktuelle Programmversion sinnvoll wäre. Nach einem längeren Studium der Web-Site des Herstellers Borland entschloss ich mich, mal wieder die RoadShow der Firma, genannt „DevTracks“ zu besuchen, um mehr Klarheit hierüber zu erlangen.

Die Veranstaltung war informativ, unterhaltsam und lehrreich! Nur leider ging es kaum um Delphi und die Unterschiede der aktuellen Version zur Vorgängerversion, die Strategien hinter .“net“ und dergleichen, sondern überwiegend um Java!

In gekonnt simpler Click & Drag-Manier wurde in Windeseile komplexe Anwendungen erzeugt, genauso, wie ich es von Delphi her kannte. Programme fürs Handy – kein Problem! Hier ein Kommunikationsprotokoll eingefügt, dort eine Datei als Datenstrom über das Internet geladen. Alles war so einfach, wie man das von solchen Demonstrationen gewohnt ist.

Das also hat mich nicht sonderlich verwundert. Was mich aber begeistert hat, war das Entwicklungssystem „JBuilder“, das in vielen Bereichen dem Delphi-Entwicklungssystem überlegen war. Je länger ich also den Demonstrationen folgte, desto mehr reifte in mir der Entschluss, das so eine Entwicklungsumgebung für mich hilfreich wäre. Mit einer Testversion bewaffnet (die sich übrigens jeder interessierte problemlos bei Borland aus dem Internet herunterladen kann!) wurde ich nach Hause entlassen.

Das Projekt habe ich dann in meiner vorhandenen Delphi-Version fertiggestellt, um es kurze Zeit danach (Ich hatte gerade etwas Leerlauf.) in Java erneut zu programmieren.


Java - „Learning by doing“!

JBuilder war, zur Zeit, als ich an den DevTracks teilnahm, bei der Version X (10 ) angekommen. Ich kannte bereits die Version 1 und die Version 3.5 von früheren Experimenten. Aber das, was ich dort sah, war so überzeugend, dass ich, sobald ich nach Abschluss des Projekts „Luft“ hatte, sofort die Testversion installierte, und nach Ablauf der Testphase eine Vollversion bestellt habe. Die Einarbeitung in die Programmiersprache Java geschah bei mir also definitiv über eine Entwicklungsumgebung, mit der ich einerseits vertraut war (viele Ähnlichkeiten zu Delphi), die aber andererseits vieles, was mich an der Delphi-Version gestört hatte, elegant anders gelöst hatte.

Hinweis: Es gibt sicher auch andere gute Entwicklungsumgebungen. Eclipse ist z.B. eine davon. Mir persönlich liegt aber JBuilder eher. Das ist aber – wie gesagt - „begründete“ Geschmackssache. Und weil es genügend „Er-Google-bares“ zum Thema „Eclipse“ gibt, beschränke ich mich auf diesen Seiten eben auf den JBuilder...

Was hatte mich so begeistert? Nun, zum einen waren das eingebaute Funktionen zum „Refactoring“. Darunter sind Funktionen zu verstehen, die einen Programm-Code nach bestimmten Kriterien kontrolliert und automatisch umarbeiten. Das kommt meiner persönlichen Programmierweise gelegen. Das Simpelste ist noch das Umbenennen von Variablen und Methoden, wobei wirklich nur die Variablen umbenannt werden und nicht ähnliche Wortbestandteile in Kommentaren und Strings.

Ferner gibt es zum Beispiel eine Programmfunktion, bei dem bestimmte bestimmte Teile des Programm-Codes automatisch in eine neue Methode ausgelagert werden. Das entspricht vielleicht nicht der strukturiertest möglichen Methodik, aber so programmiere ich nun einmal. Wenn etwas funktioniert, und woanders noch einmal benötigt wird, dann denke ich über das Auslagern in eine Methode nach...

Mit Try/Catch umgeben“ ist auch so ein Beispiel. Das dient zum Abfangen von Fehlern, wird aber mitunter unübersichtlich, wenn man in mehreren aufeinander folgenden Zeilen mehrere Fehlermöglichkeiten abfangen will. So gefällt es mir mitunter ganz gut, zu programmieren, was ich realisieren will, und dann die einzelnen Zeilen automatisch mit Try/Catch-Blöcken zu umgeben. - Und dabei sicher zu sein, dass die Schachtelung der Blöcke auch wirklich korrekt ist!

Das Beste aber ist die Integration von Java-Doc, dem halbautomatischen Dokumentiersystem für Klassen und Methoden, das zwar Bestandteil von Java selbst ist, aber so bequem in den JBuilder eingebunden, dass selbst ich als notorischer Halb-Chaot mir angewöhnt habe, meinen Programm-Code zu dokumentieren. (Was mir Monate später wiederum viel Zeit spart, wenn ich irgendwelche Änderungen vornehmen will und versuche, zu verstehen, was ich mir damals bei bestimmten Methoden gedacht habe.)

Was mir ebenfalls besonders gefällt, ist, dass JBuilder ein so genanntes „Two-Way-Tool“ ist. Sie können, ähnlich wie in Delphi visuelle Komponenten mit der Maus auf Ihrem Fenster platzieren. Anders als in Delphi erscheinen diese Objekte aber direkt im Quell-Code und lassen sich beliebig ändern. Wenn Sie z.B. einen Button einfügen und mit einem Doppelklick eine bestimmte Nachricht an diesen Button (etwa „mouseClicked“) mit einer bestimmten Methode verbinden, dann lassen sich all diese Einstellungen im Quellcode nachvollziehen und auch ändern. Ändern Sie z.B. die Position, indem Sie einfach die numerischen Werte ändern. Sobald Sie wieder im „Design“.Modus sind, hat JBuilder diese Änderungen übernommen und präsentiert sie Ihnen grafisch.

Was ich in Delphi immer gern gemacht hätte (dann aber meist gelassen habe, weil es deutlich umständlicher ist), ist in JBuilder deshalb kein Problem: Ein grafisches Objekt mit der Maus definieren und dann daraus einen Array von diesem Typ zaubern. Dann über eine simple Schleife die Position im Fenster definieren und mit unterschiedlichen Ausgangswerten füllen - und sich als Programmierer zurücklehnen!

Die Programmversion, die ich mir schließlich gekauft habe (Developer) reicht für meine Bedürfnisse als programmierender „Alleinunterhalter“ eigentlich völlig aus. Die Testversion (Enterprise) hingegen konnte deutlich mehr und hat mich mit einer Funktion begeistert, die „gezeichnete“ visuelle Programmstrukturen (UML) in Programm-Code umsetzen. Für große Projekte mit mehreren Entwicklern sicherlich eine schöne Sache. Diese Version bietet viele weitere Test- und Optimierungsfunktionen, die ich für meine konkrete Arbeit nicht zwingend brauche, die ich aber im Test durchaus interessant gefunden habe.

Da Borland auf den „DevTrack“-Veranstaltungen gern Produkte verlost, habe ich ja vielleicht bei einer künftigen Veranstaltung Glück und erwische ein Paket...

Was auf den kommenden Seiten entstehen soll ist weder eine Bedienungsanleitung für den JBuilder, noch ein Programmierkurs in Java. Gerade hierfür gibt es anderer gute Web-Sites. Ich will ferner ein paar Stolperfallen erwähnen, die mir beim Umstieg Kopfzerbrechen bereitet haben. Und ein paar Beispiele sollen auch folgen, sobald ich sie fertiggestellt habe.



Wenn Sie diese Seite ohne Navigationsbaum sehen, dann laden Sie hier die komplette Web-Site.