Entwickeln mit KI: IntelliJ IDEA, Visual Studio IntelliCode und Tabnine im Test

Seite 2: Testläufe und Tool

Inhaltsverzeichnis

Das Implementieren eines fiktiven ERP-Programms, das beliebige Artikel bestellt, bildet den zweiten Testlauf. Das Programm besteht aus den drei fachlichen Klassen Artikel, Bestellposition und Bestellung, die in deutscher Sprache vorliegen. Das Datenmodell setzt sich aus Artikeln zusammen, die sich zu Bestellpositionen zusammenfassen lassen. Mehrere dieser Positionen ergeben wiederum eine Gesamtbestellung.

Der Test zeigt keinen nennenswerten Unterschied zum ersten Testlauf. Die fachlichen Klassen mit ihren Attributen sowie Getter- und Setter-Methoden sind ebenso zügig wie bei den technischen Testfällen implementiert. Ein Beispiel dafür ist das Erzeugen einer Bestellposition mit der Methode erzeugeBestellposition() der Klasse Bestellung.

Test mit fachlichen Klassen: Die Programmierhilfe zeigt gleich an erster Stelle den inhaltlich passenden Vorschlag mit dem korrekten Parameter als Ergänzung an.

Als Ergebnis der Testläufe zeigt sich, dass sich die meisten Teile der Java-Testklassen mit einem Minimum an Schreibarbeit implementieren lassen. Die Vorschläge waren hierbei in den meisten Fällen passend und zudem syntaktisch korrekt. Die Erwartung, dass ganze Codeblöcke während des Schreibens von der Codevervollständigung ergänzt werden, konnte IntelliJ mit "Bordmitteln" nur durch die Codegenerierungsfunktionen auf Basis seiner Templates erfüllen. Ein Lerneffekt bei der Implementierung, wie er bei anderen KI-Autocomplete-Tools der Fall ist, konnte bei IntelliJ nicht beobachtet werden. Trotzdem ist die Programmierhilfe von IntelliJ IDEA überdurchschnittlich hilfreich.

Die Firma Codota hat Tabnine samt seinem KI-Tool Ende 2019 übernommen und sich danach in Tabnine umbenannt. Daher gibt es sowohl Tabnine- als auch Codota-Plug-ins für Entwicklungstools. Das KI-Plug-in Tabnine basiert auf der Text-KI GPT-2 von OpenAI – einem Unternehmen, das unter anderem Microsoft und Elon Musk finanzieren. Es hat sich auf das Erforschen der künstlichen Intelligenz spezialisiert. GPT-2 steht für Generative Pre-trained Transformer 2 und basiert auf einer Transformer-Netzwerkarchitektur.

KI-Plug-ins für die Eclipse IDE

Für die Eclipse IDE gibt es zwar (noch) kein offiziell unterstütztes KI-Plug-in von Tabnine. Der Hersteller hat aber mitgeteilt, dass er überlegt, ein solches zu entwickeln. Derzeit gibt es via GitHub nur ein inoffizielles Tabnine-Plug-in.

Wer diese inoffizielle Version nicht einsetzen möchte, kann stattdessen auf das Plug-in von Codota zurückgreifen. Es lässt sich über den Eclipse-Marktplatz in der Version 1.0.14 (November 2020) herunterladen. Hat man das Plug-in installiert, erhält man durch die Codevervollständigung von Eclipse weitere Vorschläge, die von Codota stammen und mit einem grünen Logo versehen sind. Die ersten Tests mit diesem Plug-in waren sehr vielversprechend.

Zusätzlich zum öffentlichen GPT-2-Modell verwendet Tabnine ein privates lokales Modell, in das die Trainingsergebnisse während des Programmierens mit dem KI-Tool einfließen. Die Firma Tabnine garantiert hierbei ausdrücklich, dass dieses lokale Modell und der gesamte Quellcode nicht weitergegeben wird.

Das öffentliche Modell wird mit dem Quellcode von Open-Source-Programmen angelernt, deren Lizenzen eine solche Analyse mit einer kommerziellen Verwertung gestatten. Es enthält als Wissensbasis momentan ungefähr 2 Millionen Quellcodedateien. Die kostenfreie Version des KI-Tools basiert auf einem relativ einfachen Modell mit "nur" 124 Millionen Parametern. Die kommerzielle Variante verwendet ein Modell mit 350 Millionen Parametern und ist laut Hersteller daher treffgenauer. Die Vorschläge zum Codevervollständigen sollen nicht nur die Produktivität beim Programmieren steigern, sondern auch ein Auswendiglernen der Programmsyntax überflüssig machen.

Tabnine beherrscht alle wichtigen Programmiersprachen wie JavaScript, Python, PHP, C/C++, HTML/CSS, Go, Java, Ruby, C#, SQL und Kotlin. Es gibt Plug-ins für Entwicklungswerkzeuge wie Android Studio, Atom, IntelliJ IDEA und Visual Studio Code. Für den Test haben wir die kommerzielle Version Tabnine Pro in der Engine-Version 3.5.3 als Plug-in für IntelliJ verwendet, da diese Version die bessere Vorhersagegenauigkeit besitzen soll. Man installiert sie entweder über die Website von Tabnine oder den Marktplatz von JetBrains. Zunächst sollte das technische Kopierprogramm für den ersten Testlauf implementiert werden. Hierbei wechselten sich hilfreiche Vorschläge mit solchen ab, die unbrauchbar und syntaktisch falsch waren.