Von einem der auszog, Sprachen zu lernen

Am Anfang war Spaghetti

Als ich begann mich aktiv mit Computern zu beschftigen, bekamen Klassenkameraden noch den C-64 II zu Weihnachten geschenkt – neu natrlich. Es war die Zeit der Homecomputer, auch wenn sie schon damals im Sterben lagen. Mich hatte der Atari ST gefesselt, der Commodore Amiga 1200 brachte nochmal Wind in die Szene und auch der Acorn Archimedes hatte noch einen kurzen Gastauftritt in Deutschland, ehe die wachsende Zahl hsslicher DOSen die schicken Homecomputer ein- fr allemal in ihr Nischendasein drngte.

Zu der Zeit war BASIC allgegenwrtig, teils als Betriebssystem, teils als kostenlos mitgelieferte Programmiersprache – wie ja nicht zuletzt auch bei MS DOS in Form von GW BASIC. Fr die sptere Laufbahn hat BASIC sicherlich viele Leute versaut. Wre ich gemein, wrde ich sagen, dass aus den miesesten BASIC-Codern spter Perl-Progger wurden. Nein, BASIC war sicher wenig geeignet einem strukturell sauberes Programmieren beizubringen. Aber es waren ja auch andere Zeiten und das Gefuckel hatte doch einen ganz groen Vorteil: Man tippte etwas ein und es geschah direkt etwas und man sah, ob es so lief, wie man sich das dachte – oder eben nicht.

Beschftigte man sich dagegen mit C oder Pascal, musste man sich erstmal komplett umstellen. Das ewige Variablen deklarieren zu Beginn in Pascal, die eigene Unfhigkeit diese Sache mit den Zeigern und den Zeigern auf Zeigern in C so richtig zu verstehen, geschweige denn den halben Meter Handbcher in meinem Schrank zu Turbo C++ und Turbo Vision. Ohne Ansprechpartner, ohne Ansprechmglichkeiten, war es fr einen Jungspund trotz aller Bcher aus der Bcherei hart, sich durchzukmpfen. Was blieb war Spaghetticode. Jahre spter kam dann PHP gerade richtig. Der Web-Boom begann und mit PHP konnte man sich, wie in alten BASIC-Zeiten, schnell mal was zusammenstpseln. Man tippte, speicherte und schon lief was. Keine Prcompiler, keine Typen, keine Header, keine make-Files.

Und Gott sprach: „Es werde Java!“

Es war eine schne Zeit, als ich meine Brtchen mit PHP verdiente, aber schnell war ich an dem Punkt, wo ich vermeintlich nichts mehr lernen konnte. Web-Anwendungen reizten mich nicht mehr, dazu glichen sie einander zu sehr. Das Erlebnis der besonderen Spannung, das ich noch hatte, als ich anfing meine erste Datenbank zu designen und darin ber PHP-Skripte rumzufuhrwerken war lngst verflogen und durch die Langeweile der Routine abgelst. Aber da gab es etwas. Da war noch Java. Java schien irgendwie berall zu sein. Die Leuchttrme der IT, Sun, IBM und Oracle, sie lieen Java strahlen und zogen mich sirenengleich an.

So landete ich vor rund zweieinhalb Jahren da, wo ich nun bin, im Bereich Desktop Java aka Rich Client Programmierung mit Java. In dieser Zeit habe ich mich durch unzhlige Artikel und Bcher gelesen, habe zigmal Code geschrieben, verworfen, Produkte ausgeliefert und meine Tage mit Refactoring verbracht. Java ist nur eine Kombination aus einer Sprache und einer Plattform. Fr sich genommen ist sie schon sehr komplex, aber wenn man mal die ganzen Bibliotheken sieht, die vielen Frameworks, Standards, Implementierungen von Standards, Best Practices, die IDEs und Plattformen – dann ist Java auf einmal ein riesiger Moloch. Ich bin recht froh rein gar nichts mit J2EE zu tun haben. Wenn ich mir vorstelle vllig unbeleckt daran zu mssen, wrde mir die Komplexizitt doch arg zu schaffen machen.

Ich bin sehr zufrieden mit meiner Wahl bzgl. Java. Ich arbeite gerne mit Java. Ich entwickle gerne Desktop Anwendungen und da mich die ganzen Lehren bzgl. OOP und Anwendungsdesign und das hufige Testen von Diesem und Querlesen von Jenem halbwegs auf dem Laufenden halten und mir Ideen zeigen und mich auf Ideen kommen lassen, bin ich nun auch ein viel besserer PHP Entwickler als damals, als ich noch dachte es gbe nichts mehr zu lernen. Ich mache nicht mehr viel in PHP. Ich erledige damit die Anbindung meiner Clients an unsere Web-Software via XML-RPC und habe mitunter so meine liebe Mhe den Kollegen die Vorteile objektorienterten Designs in PHP zu erklren. Aber das ist okay. Ich habe die Vorteile auch nicht sehen knnen, als ich mit meinem Kopf noch mitten im PHP-Buch steckte.

Und er sah, dass es gut war.

Eigentlich knnte ich diesen Eintrag nun beenden. Ende gut, alles gut. Vielleicht nicht ganz…

Wie eben beschrieben, schaue ich viel nach links und rechts. Die Blogosphre ist meine Nabelschnur zu den Erfahrungen anderer, um diese fr mich zu nutzen. Firmenintern fehlt mir leider ein fachlicher Mentor, so muss ich zu diesem Notbehelf greifen. hnlich wie meine Kenntnisse und Erfahrungen in Java mir geholfen haben, besser in PHP zu programmieren, dachte ich dass es doch vielleicht mglich sei, dass mir andere Sprachen auch einen neuen Blick auf Java ermglichen knnten. Obwohl der Webentwicklung entschwunden, entschied ich mich letztes Jahr zu schauen, was es mit diesem ganzen Ruby-on-Rails-Hype (RoR) auf sich hat. Ich begann mir auf der RoR-Website die Screencasts anzuschauen und war direkt hellauf begeistert. Ich folgte den Anweisungen und war in wenigen Minuten und vllig problemlos in der Lage das Gesehene 1:1 auf meinem Rechner nachzuvollziehen. RoR in Aktion zu sehen war schon ein Augenffner. Ich bekam eine guten Eindruck davon, welchen Benefit es bringen kann, wenn man sich an der richtigen Stelle die richtigen Gedanken macht und seinen Grips in intelligente Framworks steckt, anstatt seine Energie in der Stupiditt des ewigen Sich-selbst-Wiederholens zu verbraten.

Den nchsten Aha-Effekt hatte ich, als ich mir Ende letzten Jahres das neue Civilization kaufte. Direkt beim ersten Start weckte die Einblendung „Python loading“ meine Aufmerksamkeit auf den Splash-Screen. Eine kurze Recherche ergab, dass das Game in weiten Teilen anpassabr und erweiterbar ist und das dies alles auf Python basiert. Zwischendurch verfolgte ich immer mal wieder News und Diskussionen zum Thema Groovy und die Einbindung von Skriptsprachen an die Java VM. Dann wiederum beteiligte ich mich an Diskussionen und Beschwerden bezglich der stiefmtterlichen Behandlung von Desktop Java durch Sun und kurz drauf kamen Aerith, JSR 295 und JSR 296. Immerhin erste Schritte in die richtige Richtung, aber natrlich keine Soforthilfe.

„Warum berluft es dich hei, und warum senkt sich dein Blick?“

Nun bin ich schon eine Weile an dem Punkt, wo ich Java zu gut kenne, um es noch immer und berall ber den grnen Klee zu loben. Java ist nicht schlecht. Aber wie immer ist es so, dass das was eben noch hipp und toll war, morgen Gefahr luft ein alter Hut zu sein und lange von neuen frischen Konzepten berholt worden zu sein. Erst letztens verbrachte ich ein Wochenede damit mich mit Smalltalk in Form von Squeak zu beschftigen. Wenn ich fr Java lernen wollte, dann doch am besten von dessen geistigen Urvater, von dem an vielen Stellen zu wenig bernommen wurde. Smalltalk ist noch heute seiner Zeit zu weit voraus, frchte ich. Selbst Miterfinder Alan Kay ist wohl der Meinung, dass Python das werden wird, was er sich fr Smalltalk gewnscht htte. So kam ich ber meine Smalltalk-Recherchen wieder zu Python und tat mir dann mal einige Seiten Interview mit Bruce Eckel an. Zwar sind diese von 2003, aber darum nicht mehr oder weniger erfrischend und erleuchtend. In der Reflektion ber Python flieen auch immerwieder Querverweise zu C++ und Java ein und man denkt ber vieles, was man aus Java kennt, neu nach und findet auch viele eigene Erkenntisse wieder.

In Java zu coden ist produktiver als in C oder C++ zu programmieren. Einschlgige Studien sprechen einen eindeutige Sprache. Mal eben was eintippen und schauen was passiert, mit wenig Code viel Funktion erzeugen, so wie wir es noch aus BASIC-Zeiten kennen – das gibt es so nicht in Java. Was die Produktivitt angeht haben PHP, Ruby und Python die Nase vorn. Die oben erwhnten Skript-Erweiterungen fr Java spiegeln diese Erkenntnis, die andere schon frher hatten, wider. Groovy ist in Teilen an Python und Ruby angelehnt und steth derzeit kurz davor in Java aufgenommen zu werden, als offizielle Skriptsprache. ber ein paar Zeilen Groovy bin ich noch nicht hinaus. Zwar gibt es Planungen fr konkrete Projekte, wo ich mir eine Integration in jedem Fall vorstellen kann. Noch fehlt mir aber die Erfahrung, fehlen mir die Tests, um fr mich klarzustellen, an welchem Punkt ich einen Benefit daraus ziehen kann, unsere Anwendugen weiter aufzublasen und mit noch einer Sprache noch eine Fehlerquelle in unsere Anwendungen einzubauen und wo da der Nutzen herkommen soll.

Vielleicht wird sich der Kreis erneut schlieen, ein drittes Mal bei Python. Gestern habe ich einen Blog-Eintrag gelesen, der Microsofts IronPython in Aktion zeigt. Das ist die MS Variante aufbauend auf .NET 2.0. Schwenk von Java zu .NET 2.0 mit IronPython? Nein, hier im Job sicher nicht. Das knnte ich weder meinem Arbeitgeber noch den Kunden verkaufen und derzeit ja nichtmal mir.

Der Zwang zur Wirtschaftlichkeit, zum Investitionsschutz, wird auch weiterhin dafr sorgen, dass Java ein ganz groes Ding bleiben wird. Frameworks und Standards werden kommen und gehen. Darwinismus der Bits und Bytes. Ob RoR auch weiterhin gehypet werden wird, oder ob man nicht lieber die Nachbauten, die es fr Python, PHP und Groovy gibt, nutzen wird – man wird sehen. Wenn ich heute meine IDE anwerfe (derzeit Eclipse, aber so ganz kann ich die Finger nicht von Netbeans lassen), frage ich mich, wo die Reise hingeht. Wieviele Frameworks muss man noch beherrschen, wieviele Patterns muss man pauken und wieviele Skriptsprachen muss man lernen, um ein guter Java-Entwickler zu sein und schnell gute Produkte zu liefern?

So einfach wie frher wird es jedenfalls nie mehr werden. Ich werd gleich mal bei eBay stbern, ob sich nicht ein gut erhaltener C-64 II, mit 1571er Laufwerk auftreiben lsst.

Links:

Kommentare (6)

  1. Ich bin hier über Google auf die Webseite gestossen. Bitte nicht falsch verstehen, aber ich wollte eins mal wissen, wieviel Besucher habt ihr denn so täglich? Macht Ihr irgend etwas in Richtung Suchmaschinenoptimierung? Oder hat sich das eher von allein im Netz herumgesprochen und dementsprechend verlinkt?

  2. Zwischen 400 und über 2000, je nach Saison. Die Site hat ein paar Keywords im Long-Tail-Bereich zu denen es jedes Jahr deutliche Ausreißer nach oben gibt. An SEO mache ich hier schon eine Weile nichts mehr, außer das obligatorische Kommentieren auf anderen Seiten, aber nicht der SEO wegen, sondern um zu kommentieren; also anders also du gerade. ;-)

  3. Endlich mal ein Blog, der wirklich Informationen veröffentlicht. Leider ist im deutschsprachigen Netz die das Schreiben von Blogs nicht besonders ausgeprägt, hier hat der Besucher aber einen echten Mehrwert. Ich finde auch teilweise die Kommentare sehr interessant. Da sieht man, dass sich jemand wirklich Arbeit gemacht hat.

Kommentare sind geschlossen.