Im letzten Beitrag zur OOP habe ich mich darüber beklagt, dass noch keine technologischen Trends erkennbar sind. Das hat sich inzwischen gebessert. Die OOP hat sich in den letzten Jahren von der reinen objektorientierten Konferenz hin zu den Bereichen Software-Engineering, Methoden und Projektmanagement gewandelt. In diesem Jahr sind die hippen Themen etwa so die folgenden:
-
Softwareentwickler wechseln Programmiersprachen mittlerweile so dynamisch wie früher Frameworks. Die Wahl heisst nicht mehr einfach "Java" oder "C#". In den Sessions war durchgehend von Sprachen wie
Ruby,
Groovy,
Python,
Scala,
Lisp,
Smalltalk,
Prolog,
Erlang,
Haskell,
F#, etc. die Rede oder es wurden Beispiele in diesen gezeigt, mitunter auch bunt gemischt. Dieser Trend wird verstärkt durch die Verfügbarkeit von DSLs, respektive der Sprachen, welche
interne DSLs zulassen (Ruby, Groovy, C# 3.0, etc.). Das ist eine erfreuliche Entwicklung, denn mit der richtigen Sprache am richtigen Ort lässt sich die Produktivität immens steigern (
Ruby on Rails z.B. ist grösstenteils eine Anwendung der Ruby DSL-Fähigkeiten). Softwareentwickler sollten sich vorsehen: In wenigen Jahren werden nicht mehr Java- oder C#-Programmierer gesucht, sondern "Dynamische Programmierer", "DSL-Spezialisten" und dergleichen. Allerdings steht schon im
Pragmatic Programmer als eine der ersten Regeln: Lerne pro Jahr mindestens eine neue Programmiersprache.
-
Collaboration. Besonders in den Keynotes von IBM und der Eclipse Foundation waren Tools und Methoden rund um Collaboration das Thema der Wahl. Allerdings mit einer jeweils leicht anderen Bedeutung. IBM stellte deren neue Collaboration-Plattform
Jazz vor (erst nachdem eine halbe Stunde darüber referiert wurde, dass die Welt sich ständig ändert), welche es den (möglicherweise weltweit verstreuten) Entwicklern, den Managern, Kunden, Testern, etc. ermöglichen soll, projektrelevante Informationen möglichst schnell und einfach auszutauschen. Und dies - das ist der grosse Vorteil daran - immer in Bezug zu einem Kontext, z.B. einem Change-Request oder einem Bug-Eintrag. Die Keynote von
Mike Milinkovich, Executive Director der
Eclipse Foundation stellte hingegen Collaboration zwischen sich konkurrierenden Firmen als zentralen Erfolgsfaktor für die heutige Produktentwicklung dar. Sein Credo lautet "Collaborate on the Platform, Compete on the Products". Er meint damit, dass die 80% der Features, welches jedes konkurrierende Produkt sowieso hat, gemeinsam entwickelt wird und nur die USP-Features von jeder Firma selbst entwickelt werden. Bestes Beispiel hierfür ist natürlich die Eclipse-Plattform selbst, an welcher etwa
150 Firmen finanziell und mit Manpower beteiligt sind. Andere Beispiele sind Linux, der Apache-Server und im weitesten Sinne auch Java (via den
JCP).
Aus der Eclipse-Keynote stammt auch das folgende Bild, welches den Adaptionsgrad von Open-Source-Software in "kommerziellen" Firmen illustriert. Interessant und relativ neu sind vor allem die Stufen 4 und 5. Stufe 4 "Collaboration" bedeutet, dass die Firmen sich zu einer Mitarbeit in Open-Source-Projekten committen und wirklich Geld investieren. Stufe 5 "Redefine" bedeutet, das Firmen Open-Source als Businessmodell entdecken und so mehr oder weniger kreativ mit Open-source Geld verdienen. Ein in letzter Zeit immer beliebteres Modell ist z.B. "Open Commercial Development". D.h. die Lizenz zu einem Produkt bleibt kommerziell, die Sourcen werden aber freigegeben, in der Hoffnung, dass irgendwelche Geeks das Produkt gratis weiterentwickeln...

Damit ist meine Zeit an der OOP schon wieder abgelaufen. Zum Abschluss noch einige der cooleren Sprüche, die die Referenten von sich gaben:
"Mit dieser Aussage bewege ich mich noch im Kontext der Wahrheit" (Christian Wenz, Silverlight)
"Diese Minderheit ist gerade gross genug, dass ich sie nicht mehr ignorieren kann" (Markus Völter, DSLs, nach einer Umfrage im Publikum)
"Es ist sehr schwer aus einer Wurst wieder ein Schwein zu machen" (Peter Hruschka, Schwarzweiss)
Am Rande der OOP bin ich auf ein interessantes neues Software-Magazin gestossen. KaffeKlatsch behandelt primär die Themen .NET und Java, aber auch alles andere, was in dem Kontext interessant und nützlich sein kann. Es versteht sich als ein Mittelding zwischen einem Blog und einer "normalen" Fachzeitschrift. Das Magazin ist kostenlos und nur online als PDF verfügbar. Was sofort heraussticht, ist das schlichte, angenehme Layout und die unspektakulär aufbereiteten Texte, welche - auch inhaltlich :-) - von sehr guter Qualität sind. Allerdings gibt es bisher erst eine einzige Ausgabe. Wie sich das Magazin in Zukunft entwickelt, bleibt abzuwarten. KaffeeKlatsch wird von Michael Wiedeking herausgegeben. Der Geschäftsführer der MATHEMA Software GmbH ist (zumindest mir) schon öfter durch sehr gute Artikel in diversen Java-Magazinen aufgefallen. Das lässt auf interessante und intelligente Themen hoffen, welche auch mal ein wenig abseits des üblichen Mainstreams liegen. Das Magazin finanziert sich über Werbung, es gibt jedoch nur einen einzigen Werbeblock, der einfach übersprungen werden kann.
Es lohnt sich, mal reinzuschauen - oder gleich zu abonnieren !
Es ist wieder mal OOP und viele Techies, Architekten, PLs und Middlemanager pilgern zur Messe München. Allerdings nicht ganz so viele wie auch schon, aber das ist eine gefühlte Menge und mein Gefühl ist vielleicht durch die JavaOne vom letzten Jahr ein wenig beirrt worden...
So ein richtiger Trend bezüglich aktueller Themen - mal abgesehen vom iPhone, welches in jedem Vortrag auf irgendeine Weise referenziert wird - ist bisher noch nicht auszumachen. Mal sehen, was die nächsten Tage bringen.
Die Keynotes waren von erstaunlich guter Qualität, fernab dem üblichen Sales-blabla:
Prof. Dr. Oliver Gassmann von der Uni St. Gallen referierte in Innovation – zwischen Buzzword, Management und Intuition darüber, wie Firmen wie Apple, Google und Nestle ihre Innovationen zum Erfolg führen. Quintessenz: Innovativ ist eine Firma schnell einmal, aber um die Innovationen in Geld zu verwandeln müssen primär eingebrannte Denkweisen verworfen werden. Einige Beispiele: Wer hätte vor wenigen Jahren gedacht, dass man Kunden dazu bringen kann, für ein Kilo Kaffe 50 Euro zu bezahlen? Nestle hat's mit Nespresso vorgemacht. Warum hat Apple das Rennen um die portablen Musikplayer gewonnen und nicht Sony, welche bisher mit Walkman und Discman den sprichwörtlichen Ton angaben? Sony war der Meinung, dass man Musik nur über Tonträger verkauft. Und warum gibt sich das Fraunhofer Institut mit ein paar Millionen Lizenz-Einnahmen für das MP3-Format zufrieden während andere Milliarden damit verdienen?
Daneben ging es auch darum, wie man Mitarbeiter dazu motiviert, sich kreativer für die Firma einzusetzen. Neben den üblichen Anreizen, wie Geld und Status, waren vor allem folgende Aussagen wichtig:
-
Keine Kreativität ohne Fachwissen. Firmen wie
Brainstore versprechen zwar, eine Fülle von Ideen zu einem fast beliebigen Problem zu liefern. Wirkliche Innovation benötigt aber fundiertes Fachwissen, auf dem man aufbauen kann.
-
Spass und Komfort sind essenziell. Kreativität braucht ein anregendes Umfeld, in dem Vertrauen herrscht und man sich wohl fühlt. "Kein Zeitdruck" ist gehört übrigens nicht automatisch mit dazu. Wenn die Rahmenbedingungen stimmen, kann man auch unter Zeitdruck sehr wohl kreativ sein.
Die andere Keynote, How Simple is Too Simple? von Erik Dörnenburg und Dan North, behandelte Komplexität von Problemen und Lösungen. Einfachheit demonstrierten die beiden vor allem anhand ihrer Folien: Etwa 4 Slides mit insgesammt max. 15 Wörtern führten durch die 1h-Keynote. Die wichtigsten Aussagen:
-
Die Krankheit, immer alles möglichst generisch lösen zu wollen, führt zu unnötig komplizierten Lösungen. Und meistens ist die Schnittmenge zwischen der durch die generische Lösung anvisierten Varianz und der dann tatsächlich benötigten Flexibilität annähernd null.
-
Standards sollten aus der Praxis kommen und nicht umgekehrt. Sun definiert mit dem
JCP üblicherweise erst mal einen Standard, schaut dann wie der sich in der Praxis bewährt und verbessert ihn dann mühsam über die Jahre hinweg. Eindrücklichstes Beispiel ist die EJB-Spezifikation.
Ruby on Rails ingegen hat die bewährtesten Prinzipien in ein Framework gegossen und ist extrem erfolgreich damit.
-
Eine Lösung soll zwar möglichst einfach, aber nicht zu einfach sein. Ein grosser Fehler wurde beispielsweise gemacht, als man verteilte Systeme und Objektorientierung in Form von CORBA, RMI, EJB, etc. miteinander kombiniert hat. Durch den transparenten Ansatz hat man die Entwickler dazu verleitet, auch in verteilten Systemen so zu programmieren als wäre alles lokal. Dass aber entfernte Aufrufe mindestens um den Faktor tausend langsamer sind als lokale und erst noch unzuverlässig (RemoteException...) wurde dabei einfach ignoriert. Firmen wie
dynaTrace verdienen ihre Geld dank diesem zu simplen Ansatz.
Ein paar Auszüge aus den Sessions
Der Speech zu Silverlight von Christian Wenz war primär sehr unterhaltsam. Die Themen waren Verbreitung, Status und Zukunft von Silverlight. Damit Silverlight ein Erfolg wird, muss die Verbreitung des notwendigen Plugins hoch sein. Wie der Browserkrieg gezeigt hat, werden schwach verbreitete Browser von den Webentwicklern links liegen gelassen, weil es sich nicht lohnt und man es sich nicht leisten kann, Applikationen auf jede Umgebung anzupassen. Gemäss Adobe hat Flash eine Verbreitung von 99% (Die von Java ist übrigens 85%). Diese Marke ist extrem hoch und Microsoft setzt alles daran, für Silverlight dieselbe Durchdringung zu erreichen. Das führt soweit, dass das Plugin sogar im Firefox läuft. Und damit nicht genug, gibt es sogar ein Plugin für den Safari und Firefox auf Mac. Der Hammer ist aber, dass es auch ein Plugin für Firefox auf Linux geben soll (sinnigerweise Moonlight genannt). Microsoft sponsert dieses Projekt via den Untertanen Novell und dessen Schützling, das Mono-Projekt.
Und noch etwas ganz anderes: Am Rande konnte man noch erfahren, warum man seit 2 Jahren (genauer seit April 2006) im IE bei jedem ActiveX-Plugin erst das Plugin aktivieren muss ("Click to activate and use this control") bevor man es wirklich benutzen kann. Das ganze geht auf einen Patentstreit zwischen Microsoft und Eolas zurück. Eolas reklamiert mit einem Patent die Rechte an der Plugin-Technologie für sich. Microsoft umgeht mit der zusätzlichen Aktivierung die Bestimmungen des Patents. Was hat das mit Silverlight zu tun? Für Silverlight geht Microsoft den Umweg via JavaScript und Host-Div-Tag um das Plugin einzubinden, was anscheinend das Patent nicht tangiert. Damit fällt für Silverlight die Aktivierung weg. Für andere Plugins gibt es aber auch Good News: Ab April 2008 ist wieder Schluss mit Aktivierung.
XING Marketplace - Integration von Ruby on Rails in die XING Plattform von Norman Timmler und Andreas Wachowski war zumindest teilweise ein Anschauungsbeispiel des "Not-Invented-Here"-Syndroms (NIH). Die Plattform XING wurde bisher von der Firma epublica entwickelt. Im Laufe der Zeit kamen 220'000 Zeilen Perl-Code und eineige zehntausend Zeilen HTML, Java und JavaScript zusammen.
XING baut nun eine eigene Entwicklertruppe auf, welche nun alle neuen Bereiche der XING-Plattform entwickeln. Erstes Projekt war die Jobbörse XING Marketplace. Die Entwickler setzen nun aber nicht etwa auf der bestehenden Architektur auf, sondern entwickeln ihre Teile neu in Ruby on Rails. Auch das ganze Entwicklungsumfeld (z.B. SVN statt CVS) wurde neu aufgebaut.
Insgesamt waren sie anscheinend erfolgreich, denn der Benutzer merkt heute nichts vom Technologie-Switch zwischen der Haupt-Plattform und dem Marketplace. Die Entscheidung war aber ziemlich mutig, denn es mussten Probleme, wie Single Sign On, das gemeinsame Verwenden von Benutzerdaten, Routing und Load-Balancing mit zwei völlig unterschiedlichen Systemen, etc. gelöst werden. Eine dringend benötigte Funktionalität in Ruby on Rails, das Namespacing, wurde sogar erst während der Entwicklung des Marketplace in RoR integriert. Alles in allem ein Hochrisikovorgehen, das auch hätte schiefgehen können. Immerhin ist XING mit 4.5 Millionen Mitgliedern und etwa 18 Millionen Euro Umsatz nicht gerade klein.
Allerdings: ich möchte persönlich auch nicht 220'000 Zeilen einer Write-Only-Sprache weiterentwickeln müssen...
Gestern am JUGS Event RIA for Business Applications hat Björn Müller von CaptainCasa die Grenzen der AJAX-User Experience unter vollem Körpereinsatz demonstriert. Das wichtigste Ergebnis des sehr unterhaltsamen Vortrags war die Feststellung, das die AJAX-Technologie wegen der beschränkten JavaScript-Performance der Browser bereits an der Grenze ihrer Möglichkeiten angelangt ist:

AJAX gibt es etwa seit se den IE 5.5 gibt (nur hatte die Technik damals noch keinen Namen, das lief unter 'coole IE Features'
). Seit dem Hype steigen die Erwartungen an AJAX ins unermessliche. Google ist ja bekanntlich dran ein ganzes Office-Packet in AJAX zu implementieren. Wer's schon ausprobiert hat, weiss: Der Warten-und-Kaffee-trinken-Anteil ist unerträglich hoch....
Im Vergleich zu den JavaScript-Interpretern hat zum Beispiel Java enorme Performance-Boosts erfahren, den extremsten als mit der Version 1.2 der JIT eingeführt wurde. Die JavaScript-Engines der Browser hingegen sind seit Jahren praktisch unverändert geblieben:
-
Es gibt keinen (JIT-)Compiler
-
Der Code (auch Funktionsdefinitionen) wird bei jedem Seitenaufbau komplett geparst und abgearbeitet. Es gibt kein Caching auf dieser Ebene
-
DOM-Operationen sind extrem langsam (Bsp: document.getElementById() dauert fast 1ms)
-
100e von Memory-Leaks lassen den Speicherverbrauch bei länger laufenden Applikationen ständig anwachsen
Gemäss Björn Müller sind hier auch keine Anstrengungen in diese Richtung bei den Browserherstellern erkennbar. Microsoft habe kein grosses Interesse daran, da für sie der Browser sowieso ein Auslaufmodell darstellt und sie nun vor allem Silverlight vorantreiben. Und bei Mozilla sei auch keine Aktivität in dem Bereich zu beobachten.
Dem hielt der nachfolgende Speaker (Ryan Stewart von Adobe) entgegen, Adobe habe die ActionScript-Engine inklusive JIT-Compiler als Open-Source an die Mozilla-Foundation abgegeben. Daraus ist das Mozilla-Unterprojekt Tamarin entstanden. Das war vor etwa einem Jahr. Das Projekt ist allgemein ziemlich aktiv, aber ob sich nun aber etwas tut in Richtung JIT-Compiler ist leider nicht erkennbar...
Ach ja, und wie führen nun AJAX-Applikationen zu Magengeschwüren?
Björn: Es ist diese kleine Verzögerung bei jedem Klick bis das UI sichtbar reagiert, welche einem ... jedesmal ... den ... Magen ... zusammenzieht. Und wenn man mal einige Wochen mit einer solchen Applikation gearbeitet hat, muss man anschliessend zum Arzt. 