Logo - Dipl.Inf. Guido Draheim - Entwicklung, Schulung, Beratung, Dokumentation Java Skill
Adr.:  Guido Draheim
Nipkowstr. 64
12489 Berlin
Tel.:  0179'467'5028
St.Nr.:  36/365/62133

Allgemein
  Freiberufler
  Universität
  SourceForge
  Programmierer
  Lebenslauf
  Interessengebiete
Projekte
 PFE VM
 XMLdb ast/ta
 Doku Compiler
 Makro Archive
Infos / Skills
 Asm , C , C++ , Java
 Perl , Python , PHP
 Shell , Scheme , Forth
 ... und vieles mehr
Querverweise
 Weblinks
 Software
 Sitemap
  (english)   (francais)  

printer / text mode version drucktext
(C) 2005-03-24 Guido Draheim @ web.de

generated by mksite.sh
2007-08-19

Ich habe die Entwicklung Java seit den ersten Tagen mitverfolgt, allerdings war ich von dieser Sprache nie wirklich begeistern. Sie fordert dem Programmierer langatmige Kontrukte für häufige Fälle ab, und akzeptiert so manchen Problemfall stillschweigend. Sichtbar wurde dieses etwa an den berühmten fehlenden "enum"s.

Interessant war für mich vor allem das Konzept des Zwischencodes ohne Platformzwang - was ich schon von FORTH aus frühesten Tagen kannte. Die Managed-Objects waren ab dem Moment interessant, wo es die ersten Beispiele einer dynamischen Migration gab, man also ein laufendes Program einfrieren konnte, auf einen anderen Rechner übertrage, auspacken, und weiterlaufen lassen konnte.

Letztlich bin ich immer wieder erstaunt, wie gut sich Java trotz vieler Krankheiten entwickelt hat. Woher die Probleme kommen begreift man in dem Moment, wo man sich vor Augen führt, dass der Erfinder James Gosling ursprünglich nur ein vorkompiliertes Javascript haben wollte, jedoch sein Managment stärker die Möglichkeiten echter Applikationen betont haben wollte. Aus dem Unwillen heraus blieb Java lange irgendwo auf halbem Wege stecken.

Mittlerweile ist Java ein Industriestandard - und zwar nicht wegen der Programmiersprache selbst, sondern wegen der Unzahl an Bibliotheken, die man benutzen kann. Da Java-Zwischenkompilate nur mit Java zu benutzen sind (im Gegensatz zu .NET-dlls), ist man eben als Programmierer immer an Java gebunden. Dafür kann man im Fundus der Apache Fondation einige sehr schöne und ausgereifte kostenfreie Bibliotheken finden, die das Leben bei der Programmerstellung doch enorm erleichtern.

Jedoch sollte die Selbstzentierung der Java-Welt nicht darüber hinwegtäuschen, dass es sehr wohl Alternativen gibt. Zuvorderst sollte man Superwaba erwähnen, dass auf dem gleiche Zwischenkompilat arbeitet, aber auch das mobile Java (J2ME) ist in seinem Satz an Basisklassen schon gehörig von anderen Editionen verschieden. Und neben J# zur Einbindung von Quellcode in Java, gibt es auch IKVM und andere Maschinen, die Zwischenkompilate der jeweils anderen Welt nutzen können (CLR und JVM), JPython für eine andere Programmiersprache, und Möglichkeiten wie XML Encoded Sourcecode, die sich ähnelnden Sprachen Java und C# syntaktisch ineinander umzuwandeln.

Langfristig glaube ich nicht, dass die Java-Plattform in seiner heutigen Weise überleben kann. Microsoft zeigt derzeit eindrucksvoll, was auf Basis der gleichen ursprünglichen Konzeption alles möglich ist, und unterfüttert es ebenso mit freien Bibliotheken - zunehmend ergänzt vom Mono-Projekte. Das fehlende Zoning in der Speicherverwaltung macht diesen jedoch noch zu schaffen.

Projekte

Rückblickend stellt sich heraus, dass die meisten Java Programme auf Internet und Datenbanken ausgerichtet waren. Da liegen wohl auch die Stärken der Platform - zumindest ist Java/JDBC deutlich besser zu programmieren als C++/ODBC unter Win32, und eine Webseite zu laden und dessen Text (oder DOM) zu inspizieren, gestaltet sich erheblich mehr geradeaus als unter C++.

Eines meiner ersten Übungsprogramme war natürlich ein Bot - in diesem Falle für Lotterie und Wetten. Einige der Hersteller bieten ihre alte und aktuelle Ergebnisse im Internet an. Also holt man sich die Daten über das Web-Interface, und stellt sie für lokale Anwendungen zur Verfügung. Eine grafische Oberfläche mit Swing (alternativ mit GTK programmiert) gibt es gleich noch dazu - man hinterlege seine üblichen Tipps, und das Programm informiert einen, sobald es man getroffen hat. Also nie mehr Angst haben, dass man den Hauptgewinn verpasst hat.

Ein richtig großes Java-Programm ergab sich im Rahmen meiner Diplomarbeit - ein Compiler zur Schema-Transformation. Dieser Fall beinhaltete gleich ein ganzes Sammelsurium an eingebundenen Bibliotheken. Von JJTree/JavaCC für die SQL Sprachsyntax, mit XML für eine interne Darstellung, mit Hunderten von spezifischen Klassen für die Elementtransformation, und einer testweisen Oberfläche zur Darstellung des Datenbankschemas. Und natürlich mit Javadoc versehen, als Jars verpackt, und Buildskripten versehen.

Ansonsten ist Java halt das ideale Tool für kleine Werkzeuge rund um Netzwerke - da es ja auch keine Rolle spielt, ob man das erzeugte Programm nun auf einen Windows oder Linux Client installiert. Man nehme etwa die Variante, dass ein erstellter Kunden-Patch aus den eigenen Archiven zu einem Server-Host transferiert und dort mit Hinweisen der Veröffentlichung platziert wird. Das sind fünf Eingabefelder (was, woher, wieso, von wem, anmerkung) und viel Web GET/POST Code dahinter.


Compilerbau / Generatoren / Adaptoren / Transformierung / Modularisierung / Modernisierung Datenbanken / Kommunikation / Schnittstellen / Programmquellen