© Liashko/Shutterstock.com
Entwickler Magazin
Intelligente Code Completion in Java-IDEs

Go with the Flow

Ob Wortvorschläge in E-Mail-Clients, Textverarbeitung oder Suchmaschinen: Das Konzept der automatischen (Code-)Vervollständigung (engl. Code Completion) hat sich nicht nur in Entwicklerkreisen durchgesetzt. Doch Code Completion kann mehr als dem Entwickler nur dann und wann etwas Tipparbeit ersparen; ein modernes Code-Completion-System wie Eclipse Code Recommenders erleichtert darüber hinaus das Erlernen neuer APIs und lässt Neulinge vom Wissensschatz ihres Teams oder gar der weltweiten Entwicklercommunity profitieren.

Andreas Sewe, Marcel Bruch


Spätestens mit Microsofts IntelliSense, das 1996 in die Visual-Basic-Entwicklungsumgebung Einzug hielt, hat die Idee der automatischen Codevervollständigung endgültig den Sprung von der Theorie in die Praxis geschafft. In den späten 80er Jahren noch Gegenstand universitärer Forschung, wurde Code Completion nun zum unverzichtbaren Helferlein tausender Entwickler und verbreitete sich unter dem quasi-universellen Tastenkürzel CTRL+SPACE rasch von einer IDE zur nächsten.

So ist es wenig verwunderlich, dass alle modernen Entwicklungsumgebungen im Java-Umfeld (Eclipse, IntelliJ IDEA, NetBeans) über Code Completion in ähnlicher Form verfügen. Statt mühsam Methoden- und Funktionsnamen aus dem Gedächtnis oder der (hoffentlich vorhandenen) API-Dokumentation hervorzukramen, bekommt man sie nun in einem praktischen Menü präsentiert; man muss die richtige Funktion oder Methode nur noch auswählen …

Abb. 1 bis 3: Code Completion in Eclipse, IntelliJ IDEA und NetBeans

Den Wald vor lauter Bäumen …

Doch die jeweils für das aktuelle Problem passende Methode auszuwählen, ist oftmals leichter gesagt als getan; selbst ein scheinbar einfaches Konzept wie ein Widget für textuelle Benutzereingaben manifestiert sich in einer Vielzahl von Methoden – von denen die allermeisten im Kontext des Problems irrelevant sind.

Abb. 4: Die 187 Methoden (und 3 Felder) von „Text“, einem typischen GUI-Widget

In solch einer Situation verbringt der Entwickler – vor allem, wenn ihm das API noch nicht so geläufig ist – viel Zeit damit, Schritt für Schritt durch die Liste der Vorschläge zu gehen und anhand von Methodennamen und -parametern abzuwägen, welche der Methoden wohl die richtige ist. Im besten Fall verfügen die aufgelisteten Alternativen zwar noch über API-Dokumentation (im Java-Umfeld meist JavaDoc), die von der IDE in Form eines Tooltips dargeboten wird und bei der Entscheidungsfindung hilft. Aber auch das Überfliegen dieser Dokumentation kostet wertvolle Zeit. Und so ist es nicht sehr verwunderlich, dass ein Entwickler im Angesicht eines unbekannten API im Schnitt 25 Sekunden benötigt, sich für eine der Methoden zu entscheiden [1]. Mehr noch: Trotz einer manchmal gar mehrminütigen Bedenkzeit gelingt es Entwicklern nicht immer, aus der Vielzahl an Alternativen die in ihrem Fall optimale zu wählen; die Folge sind weitere Verzögerungen und Code, der umständlicher ist als er sein müsste. In jedem Fall aber wird der Entwickler aus dem „Flow“ gerissen [2]; er weiß, was zur Lösung seines Problems pri...

Entwickler Magazin
Intelligente Code Completion in Java-IDEs

Go with the Flow

Ob Wortvorschläge in E-Mail-Clients, Textverarbeitung oder Suchmaschinen: Das Konzept der automatischen (Code-)Vervollständigung (engl. Code Completion) hat sich nicht nur in Entwicklerkreisen durchgesetzt. Doch Code Completion kann mehr als dem Entwickler nur dann und wann etwas Tipparbeit ersparen; ein modernes Code-Completion-System wie Eclipse Code Recommenders erleichtert darüber hinaus das Erlernen neuer APIs und lässt Neulinge vom Wissensschatz ihres Teams oder gar der weltweiten Entwicklercommunity profitieren.

Andreas Sewe, Marcel Bruch


Spätestens mit Microsofts IntelliSense, das 1996 in die Visual-Basic-Entwicklungsumgebung Einzug hielt, hat die Idee der automatischen Codevervollständigung endgültig den Sprung von der Theorie in die Praxis geschafft. In den späten 80er Jahren noch Gegenstand universitärer Forschung, wurde Code Completion nun zum unverzichtbaren Helferlein tausender Entwickler und verbreitete sich unter dem quasi-universellen Tastenkürzel CTRL+SPACE rasch von einer IDE zur nächsten.

So ist es wenig verwunderlich, dass alle modernen Entwicklungsumgebungen im Java-Umfeld (Eclipse, IntelliJ IDEA, NetBeans) über Code Completion in ähnlicher Form verfügen. Statt mühsam Methoden- und Funktionsnamen aus dem Gedächtnis oder der (hoffentlich vorhandenen) API-Dokumentation hervorzukramen, bekommt man sie nun in einem praktischen Menü präsentiert; man muss die richtige Funktion oder Methode nur noch auswählen …

Abb. 1 bis 3: Code Completion in Eclipse, IntelliJ IDEA und NetBeans

Den Wald vor lauter Bäumen …

Doch die jeweils für das aktuelle Problem passende Methode auszuwählen, ist oftmals leichter gesagt als getan; selbst ein scheinbar einfaches Konzept wie ein Widget für textuelle Benutzereingaben manifestiert sich in einer Vielzahl von Methoden – von denen die allermeisten im Kontext des Problems irrelevant sind.

Abb. 4: Die 187 Methoden (und 3 Felder) von „Text“, einem typischen GUI-Widget

In solch einer Situation verbringt der Entwickler – vor allem, wenn ihm das API noch nicht so geläufig ist – viel Zeit damit, Schritt für Schritt durch die Liste der Vorschläge zu gehen und anhand von Methodennamen und -parametern abzuwägen, welche der Methoden wohl die richtige ist. Im besten Fall verfügen die aufgelisteten Alternativen zwar noch über API-Dokumentation (im Java-Umfeld meist JavaDoc), die von der IDE in Form eines Tooltips dargeboten wird und bei der Entscheidungsfindung hilft. Aber auch das Überfliegen dieser Dokumentation kostet wertvolle Zeit. Und so ist es nicht sehr verwunderlich, dass ein Entwickler im Angesicht eines unbekannten API im Schnitt 25 Sekunden benötigt, sich für eine der Methoden zu entscheiden [1]. Mehr noch: Trotz einer manchmal gar mehrminütigen Bedenkzeit gelingt es Entwicklern nicht immer, aus der Vielzahl an Alternativen die in ihrem Fall optimale zu wählen; die Folge sind weitere Verzögerungen und Code, der umständlicher ist als er sein müsste. In jedem Fall aber wird der Entwickler aus dem „Flow“ gerissen [2]; er weiß, was zur Lösung seines Problems pri...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang