Eclipse Magazin: Was sind die größten ungelösten Probleme, denen sich die Modeling Community stellen muss?
Ed Merks: Probleme? Wir haben keine Probleme. Naja, das größte Problem, das ich konkret sehe, ist das ganze Thema rund um die Skalierbarkeit. Natürlich packen die Leute immer mehr Daten in ihre wunderschönen Modelle, wenn sie über klare, einfache APIs für den Datenzugriff verfügen. Und natürlich ist es immer möglich, so viele Daten zu verwenden, dass schließlich der Platz dafür nicht mehr ausreicht. Deshalb suchen wir nach Wegen, den Speicherverbrauch zu reduzieren. Aber natürlich kann man jeden Speicher mit zu vielen Daten überlasten, wenn man den Footprint nicht bis auf null Byte reduziert. Auf diesem Gebiet könnten einige spannende Technologien wie Connected Data Objects (CDO) eine wichtige Rolle spielen. Mit CDO verhält sich ein Objekt wie eine Fassade, und der Datenzugriff wird an ein Hintergund-System delegiert, das typischerweise auf einem Server liegt und verantwortlich dafür ist, die Daten zu verwalten. Die Fassaden-Objekte tragen keine festen Objektreferenzen und landen im Papierkorb, wenn die Applikation nicht länger auf sie referenziert. Eike Stepper hat ein großartiges Blog geschrieben mit dem Titel "How Scalable are my Models", das wirklich lesenswert ist.
Am erfreulichsten finde ich, dass es für all die ungelösten Probleme Leute gibt, die aktiv an Lösungen arbeiten. Die Eclipse-Community ist ein Ort, an dem sich etwas bewegt, und es ist ein großes Privileg, ein kleiner Teil davon zu sein. Letztendlich ist eines der größten ungelösten Probleme nicht einmal ein technologisches, sondern ein soziologisches, nämlich die überall vorhandenen Missverständnisse bezüglich Modeling.
Eclipse Magazin: Hast du eine Vision, wie Modelle und Code künftig zusammenarbeiten könnten?
Ed Merks: Ich glaube, die Zukunft ist hier und jetzt. Schau dir Eclipse an und was Leute dort mit Modellieren und Kodieren vollbringen. Sie mischen generierten und handgeschriebenen Code, weil der Generator von EMF Merging unterstützt. Entwickler können, wenn nötig, zwischen Modellieren und Kodieren hin und her wechseln, deshalb profitieren sie von beidem gleichermaßen. Schau dir auch die Arbeit an, die in DSLs gesteckt wird und erinnere dich an die frühere Diskussion darüber, ob DSLs Modelle seien. Modellieren ist Kodieren, und mit den DSLs verschwimmt die Grenze zwischen beidem weiter.
Oder betrachte folgendes Beispiel: Wenn ich ein Interface X mit einer getY-Methode in Java schreibe, ist es klar, dass ich kodiere. Aber wenn ich eine EMF-Klasse X mit einem Feature Y entwerfe, kann man da wirklich sagen, dass ich nicht kodiere? Für mich ist das dasselbe. Die Trennlinie zwischen Modellieren und Kodieren besteht nur zum Schein und verschwindet bei näherer Betrachtung.
Was uns heute am meisten fehlt, ist ein komplettes Repertoire von High-End-Modellierungs-Tools. Die Java Development Tools (JDT) von Eclipse setzen einen extrem hohen Standard für produktives Kodieren in Java. Das ist die Benchmark, die Modellierungstechnologien erreichen müssen, um die gestiegenen Erwartungen der Entwickler-Community zu erfüllen. Zum Beispiel sind Dinge wie eine automatisierte Unterstützung des Refactorings von Ecore-Modellen, welche die Wirkung auf den generierten Code berücksichtigt und so das Java-Refactoring als integrierten Aspekt des allgemeinen Refactorings behandelt, wichtig für das Erstellen richtig großer modellbasierter Projekte.
Oft richtet sich die Kritik an der Modellierungstechnologie weniger auf das Modellieren selbst, sondern auf die ungeeigneten Tools zur Unterstützung des Modeling. Doch Not macht erfinderisch, und so bin ich überzeugt, dass auch diese bald kommen werden. Wenn du dir die Community anschaust, die sich rund um Eclipse entwickelt – die großen und kleinen Organisationen, die Individuen, die Forscher – dann ist klar, dass wir alle den Weg bereiten für eine produktivere Zukunft.
Eclipse Magazin: Ed, nach so vielen Jahren Arbeit in Open-Source-Projekten und im Modeling-Umfeld: Was hast du persönlich daraus gelernt?
Ed Merks: Ich habe gelernt, dass ich nicht nur ein abgefahrener Freak bin, der in seiner kleinen Ecke bleiben und sich hinter seinem großen Monitor verstecken muss, weil Programmieren das ist, was er am besten kann. Es hat sich gezeigt, dass ich erstaunlich viele Dinge ganz gut kann. Ich habe gelernt, wie befriedigend es ist, mit anderen zu arbeiten, und besonders, dass sich der Erfolg anderer so anfühlt wie mein eigener, wenn ich in irgendeiner Weise behilflich sein konnte. Ich habe gelernt, dass es am besten ist, sich nicht selbst zu unterschätzen – das machen andere schon sehr gerne für mich. Und ich habe gelernt, dass ich mich immer in die richtige Richtung bewege, wenn ich das tue, was ich denke, wenn ich mich auf meinen eigenen Weg konzentriere, geleitet von der Stimme der Community.
Eclipse Magazin: Ed, wir danken dir für das Gespräch.
Die Fragen stellten Sven Efftinge und Sebastian Meyen.




