Überlegungen zur nächsten Generation der IDEs

IDE 2.0 – Eine kollektive Vision der IDE von morgen

Holger Voormann, Ekkehard Gentz, Marcel Bruch

Integrierte Entwicklungsumgebungen wie Eclipse, NetBeans, IntelliJ etc. haben das Leben der Entwickler erheblich vereinfacht. Toolintegrationen, Codevervollständigung, Debugging und Refaktorisierungen gehören mittlerweile zum Standard, den niemand mehr missen möchte. Doch gibt es bei allem bereits erreichtem Komfort Dinge, die die aktuellen IDEs nicht beherrschen?

Lassen Sie uns ein wenig Brainstorming betreiben und den IDE-Faden weiter in die Zukunft fortspinnen: Was wäre eigentlich der nächste Schritt für die Weiterentwicklung der IDEs, der Entwicklern zu einem wirklich spürbaren Produktivitätsschub verhelfen würde? Welche Probleme müssten behoben, welche Funktionserweiterungen vorgenommen werden? Kurz: Wie sollte die IDE von morgen aussehen?

In einer JAXenter-Umfrage wollen wir eine kollektive Vision von der IDE 2.0 erstellen. Verschiedene Akteure kommen zu Wort und auch Ihre Meinung, liebe JAXenter-Leser, ist gefragt: Je mehr Erfahrungswissen Sie mit einbringen, desto facettenreicher wird diese Vision ausfallen!

Stand der Dinge bei den IDEs

Halten wir uns zunächst einmal an den Status Quo der heutigen IDEs. Was können sie – und vor allem: Was können sie nicht?

Nimmt man einem Kind das Spielzeug weg, fängt es an zu weinen. Genauso werden Holger Voormann die Vorzüge heutiger IDEs erst im Entzug so richtig bewusst:

Holger Voormann: Seit ich einen iPad habe, fällt mir auf, welche Arbeitserleichterung eine Integrierte Entwicklungsumgebung bietet. Beim iPad mit seinen einfach zu bedienenden, aber nicht erweiterbaren Apps stoße ich schnell an Grenzen. Bereits etwas komplexere Aufgaben erfordern mehrere Apps, z. B. verlangt das Schreiben eines Artikels oder einer Analyse eine oder mehrere Apps zum Lesen und eine weitere zum Schreiben. Das dabei notwendige Hin- und Herschalten bremst den Arbeitsfluss und nervt einfach.

Voormann sieht das Plug-in-Konzept als Schlüssel zum Erfolg der IDEs – und im Bereich der Integration durchaus noch Raum für Verbesserung.

Holger Voormann: Wahrscheinlich gilt nicht nur für Eclipse, dass derjenige, der eine Funktion vermisst, nur noch nicht das richtige Plug-in gefunden hat.

Einfache Bedienbarkeit ziehe ich einem größeren Funktionsumfang vor. In der Integration sehe ich neben Konsistenz den Schlüssel dazu. Und davon kann ich nie genug bekommen, beispielsweise hätte ich gern in Eclipse eine einzige statt jeweils spezieller Repository Views für CVS, SVN, EGit, Mylyn, etc. um nur ein Beispiel zu nennen.

Ekkehard Gentz sieht Verbesserungsbedarf bei den Möglichkeiten der Anpassung einer IDE an die individuellen Bedürfnisse:

Ekkehard Gentz: Ich möchte die IDE ein wenig mehr „customizen“ können, z.B. verschiedene geöffnete Instanzen mit einem unterschiedlichen Hintergrund versehen, um diese schneller unterscheiden zu können.

Marcel Bruch arbeitet selbst an einer Zukunfts-IDE, in der kollektiv erarbeitetes Wissen anderen Entwicklern zur Verfügung gestellt werden soll.

Marcel Bruch: In den letzten Jahren haben sich IDEs vor allem dahingehend weiterentwickelt, das sie immer neue Tools für neue Frameworks integriert haben – klar, das ist ihr Job: Integrieren. Aber schaut man mal über die konkreten Tools hinweg – wo zeigen heutige IDEs noch Schwächen auf?

Aus meiner Sicht wird Mehrsprachigkeit eines *der* spannenden Themen der nächsten Jahre sein. Ein Punkt stellt natürlich die Integration verschiedenster Sprachen wie Java, Scala, Ruby z.B. innerhalb des gleichen Projekts dar. Aber interessanter wird der Toolsupport für die Unterstützung von DSLs und MDSD. Diese Ansätze heben kontinuierlich das Abstraktionsniveau für Programmierer – aber die Tools zum Debugging, Testen oder um eigene DSLs elegant in eine Hostsprache einzubetten sind Mangelware. Object Teams und Xtext sind spannende Projekte, und ich denke hier wird es in den nächsten Jahren einiges an Bewegung geben.

Ein anderer Punkt, den IDEs noch nicht ausreichend „beherrschen“, ist, den Wissensaustausch zwischen Software-Entwicklern zu ermöglichen. Damit meine ich nicht so sehr „Kollaborative Softwareentwicklung“ im Sinne von „Remote Pair-Programming“ oder „Remote Code Reviews“, sondern viel mehr den Austausch von Informationen, wie man beispielsweise ein bestimmtes Framework korrekt benutzt. Ähnlich zu Amazon wo Kunden Bücher bewerten, Rezensionen schreiben oder (über das Suchverhalten der Benutzer) thematisch ähnliche Bücher zu einer Suchanfrage vorschlagen werden („Personen, die diesen Artikel angesehen haben, haben sich auch diese Artikel angeschaut“) – das nur eben für Code. Also so etwas wie „Entwickler die Text text = new Text() aufgerufen haben, haben häufig auch text.setLayoutData() aufgerufen.“ Solche Recommender-Systeme sind in vielen Bereichen Standard (Amazon, Netflix etc.), aber eben nicht für die Software-Entwicklung. Sie könnten es aber sein, wie das Projekt „Code Recommenders“ in vielen Beispielen zeigt.

Herausforderungen

Die zweite Frage lautet, wie die heutigen IDEs den aktuellen und zukünftigen Herausforderungen wie Cloud Computing, Multicore-Systeme, verteiltes Programmieren, Mehrsprachigkeit etc. gewachsen sind.

.

Holger Voormann: Die größte Herausforderung mutmaße ich bei der Parallelisierung, um Kapital aus den immer mehr vorhandenen Kernen zu schlagen. Und das betrifft den ganzen Entwicklungsprozess, angefangen beim Testen, welches hoffentlich vor dem Schreiben des Quelltexts beginnt, das durch entsprechende statische Code-Analyse unterstützt wird, und später bei der Wartung, z. B. beim Debuggen.

Unabhängig davon, ob man die IDE nur als Oberfläche und damit die Pflicht bei den entsprechenden Frameworks oder Programmiersprachen sieht, müssen die genannten Herausforderungen letztendlich in einer IDE zu meistern sein. Scala macht erst richtig Spaß, seit man nicht mehr auf einen Texteditor zurückgreifen muss. Klar ist natürlich auch, dass die IDEs oder die entsprechenden Erweiterungen zeitlich etwas hinterher hinken. Für eine bessere Akzeptanz sollte dieser Abstand aber möglichst gering sein.

Bei den drei großen IDEs gibt es zwar Unterschiede im Reifegrad in einzelnen Bereichen, aber alle drei IDEs – glaube ich – liegen ganz gut im Rennen.

Geschrieben von
Holger Voormann, Ekkehard Gentz, Marcel Bruch
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.