Tool-Tipp

Diese Tools bieten intelligente Code-Vervollständigung per KI

Entwickler verbringen einen großen Teil ihres Arbeitsalltags mit dem Schreiben von Code. (Foto: Puhhha/Shutterstock)

An intelligente Text-Vervollständigung haben wir uns mittlerweile gewöhnt. Programm-Code schreiben die meisten von euch aber immer noch zu einem großen Teil selbst. Wir haben uns angeschaut, was im Bereich intelligente Codevervollständigung eigentlich mittlerweile geht.

Entwickler verbringen einen großen Teil ihres Arbeitsalltags mit dem Schreiben von Code. Automatische Textvervollständigung ist mittlerweile ein Standard, an den wir uns gewöhnt haben. Sowohl unsere Smartphones als auch unsere Mailprogramme bieten intelligente Vorschläge für das nächste Wort, das wir schreiben. Code schreiben Entwickler aber immer noch zu einem großen Teil komplett selbst.

Nur wenige nutzen bisher Tools zur automatischen Code-Vervollständigung, von bekannten Extensions wie Intellicode für Microsofts Visual Studio Code einmal abgesehen. Die Intellicode-Erweiterung für Visual Studio Code stellt KI-gestützte Intellisense-Vorschläge für Python, Java, TypeScript und JavaScript bereit. Intellisense sagt mithilfe künstlicher Intelligenz die API voraus, die ein Entwickler mit der größten Wahrscheinlichkeit verwenden will. Dafür verwendet sie den aktuellen Codekontext und orientiert sich am Programmierstil des Entwicklers, so die Doku.

Da tut sich was

Seit September verfügt Googles Dart-Software-Development-Kit über ein Feature namens ML Complete, eine KI-basierte Code-Vervollständigung für Dart. Während das Tool das erste smarte Auto-Completion-Tool aus dem Hause Google ist, entwickelt Kite, ein Startup aus San Francisco, seit 2014 ein ganz ähnliches Tool für die automatische Vervollständigung von Python-Code. Außerdem hatte im vergangenen Jahr ein weiteres Projekt für Aufsehen gesorgt: Tabnine ist eine automatische Vervollständigung für Python, JavaScript, Java, C++, C, PHP und einige weitere Sprachen.

Das studentische Projekt Deep Tabnine

Entwickelt wurde Tabnine von Jacob Jackson, einem kanadischen Informatikstudenten. Tabnine basiert auf Open AIs GPT-2, einem Deep-Learning-Language-Modell, das ursprünglich für die automatische Vervollständigung natürlicher Sprache gedacht war. In natürlicher Sprache ist der Kontext eines Worts lokal definiert. Um die Bedeutung eines Wortes zu verstehen, würde sich ein NLP-Modell dementsprechend auf vorherige Wörter beziehen. Um Code zu verstehen, bräuchte ein Modell jedoch Zugriff auf nicht-lokale Informationen. Trainiert wurde das Modell mithilfe von Code-Dateien von GitHub. Alle Vorschläge, die Deep Tabnine generiert, basieren auf daraus abgeleiteten Mustern. Damit ist das Tool vor allem hilfreich fürs Schreiben von allgemein viel genutzten Codestrukturen.

Kite – das Startup aus San Francisco

Kite gibt es momentan ausschließlich für Python. Von Anfang an sei klar gewesen, dass man das Tool auf eine dynamisch typisierte Sprache münzen wollte. Diese seien schwieriger zu analysieren und die dafür derzeit noch verfügbaren Tools seien immer noch nicht so ausgereift wie jene für statisch typisierte Sprachen wie zum Beispiel C.

Python machte in der Entscheidung schließlich das Rennen gegen JavaScript – einfach weil Pythons Ökosystem nicht ganz so groß ist, so Adam Smith, der CEO des Startups, gegenüber t3n. Zum Zeitpunkt der Entscheidung habe sich das noch nicht in diesem Maße abgezeichnet, seitdem sei die Nutzerbasis der fast 30 Jahre alten Sprache aber kontinuierlich weitergewachsen. Das komme Kite natürlich entgegen.

Noch befinde sich die semantische Code-Vervollständigung jedoch in den Kinderschuhen – sie funktioniere ähnlich gut wie die semantische Websuche in ihrer Anfangszeit. Wie lange es dauere, bis die Vorschläge von Kite vergleichbar mit dem heutigen Stand der semantischen Websuche sein werden, sei nicht absehbar, so Smith.

Kite mache nicht lediglich Vorschläge basierend auf vorhergehendem Code oder auf Basis von Trainingsdatensätzen, sondern beziehe die Bedeutung des Codes innerhalb einer Codebase mit ein, so Smith weiter. Ähnlich wie die semantische Websuche von vorhergehenden Ergebnissen lernt und Verbindungen zwischen Entitäten herstellen kann, beziehe Kite bei den Vorschlägen die gesamte Codebase ein, um möglichst sinnvolle Vorschläge zu generieren. So könne das Tool sogenannte intelligente Snippets bereitstellen – größere Codeteile, in denen der Nutzer dann nur noch Variablen- und Funktionsnamen ergänzen muss.

Auch cool: Außer der Code-Vervollständigungsfunktionalität bietet Kite eine Copilot-Desktop-App, die es ermöglicht, Python-Docs via Mouse-Hover oder Klick direkt aufzurufen, auch ohne Internetverbindung.

Auf Deep Tabnine angesprochen, bezeichnet Smith das Projekt als „sehr beeindruckend“ – er sei mit dem Entwickler dahinter auch bekannt und schon gespannt auf dessen weiteren Werdegang und die Weiterentwicklung des Tools.

Kite ist gratis und angeblich genauer, Tabnine unterstützt dafür 23 Sprachen

Der prominenteste Unterschied zwischen Tabnine und Kite ist die Beschränkung Kites auf eine Sprache, während Tabnine mittlerweile 23 verschiedene unterstützt. Für Python-Entwickler, die eine versuchsweise Verwendung eines der Tools in Erwägung ziehen, dürfte die Wahl wahrscheinlich aber auf Kite fallen – Kite ist gratis, für die Verwendung von Tabnine fällt jährlich ein Subscription-Beitrag an. Laut eines von Kite selbst durchgeführten Vergleichs sind die Vorschläge von Kite außerdem sehr viel präziser. Auch in Tabnine gibt es allerdings ein Feature namens Semantic Completion. Damit kombiniert Jacksons Tool Deep Learning mit semantischer Vervollständigung. Tabnine ist laut der Gegenüberstellung zudem sehr speicherintensiv und hat eine höhere Latenz als Kite.

Wer eines oder beide Tools nutzt – wir freuen uns, wenn ihr Lust habt, über eure Erfahrungen damit zu berichten.

Vielleicht auch spannend für dich: 

Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Schreib den ersten Kommentar!

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!

Hey du! Schön, dass du hier bist. 😊

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team bestehend aus 65 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Danke für deine Unterstützung.

Digitales High Five,
Stephan Dörner (Chefredakteur t3n.de) & das gesamte t3n-Team

Anleitung zur Deaktivierung