Über unsMediaKontaktImpressum
Semjon Mössinger & Bastian Weinlich 21. Januar 2025

Die Zukunft des Codings? Jetbrains AI Assistant und GitHub Copilot im Duell (Teil 1)

KI-Coding-Assistenten halten immer mehr Einzug in die moderne Software-Entwicklung. Das ist beim anhaltenden Hype um KI nicht weiter verwunderlich: Versprechen die Hersteller bei der Nutzung ihrer Produkte doch Produktivitätssteigerungen um über 50 Prozent [1]. Doch auf welches Tool sollten Entwickler:innen und Unternehmen im Jahr 2025 setzen? Der Platzhirsch Github Copilot ist aufgrund seiner starken Medienpräsenz häufig die erste Wahl, ohne dass Alternativen evaluiert werden. Wir haben daher den Github Copilot mit einem Konkurrenzprodukt AI Assistant aus dem Hause JetBrains verglichen und stellen unsere Ergebnisse vor. Außerdem geben wir anhand eines Fallbeispiels Tipps zur praktischen Arbeit mit KI-Coding-Assistenten.

Die Kontrahenten: GitHub Copilot vs. JetBrains AI Assistant

Der GitHub Copilot ist seit Mitte 2022 öffentlich verfügbar und war damit eines der ersten Tools, das ein vortrainiertes Sprachmodell für die Auto-Vervollständigung verwendet hat. Inzwischen ist der Feature-Umfang deutlich gewachsen – genauso wie die Anzahl der IDEs, in denen der Copilot als Plugin angeboten wird (inklusive der JetBrains IDEs). Wichtig ist es aber dabei zu erwähnen, dass zahlreiche Features nur exklusiv für Visual Studio und Visual Studio Code verfügbar sind. Das ist nicht weiter verwunderlich, wenn man bedenkt, dass GitHub inzwischen zum Microsoft-Konzern gehört.

Auf der anderen Seite steht der AI Assistant von JetBrains, die vor allem durch IDEs wie IntelliJ oder Resharper – aber auch durch die Programmiersprache Kotlin bekannt geworden sind. Diesen Assistenten gibt es ebenfalls als Plugin – jedoch nur für die JetBrains IDEs. Der AI Assistant ist mit gut einem Jahr auch deutlich jünger als die große Konkurrenz von GitHub. Das macht sich auch im geringeren Funktionsumfang bemerkbar, wie sich später zeigen wird.

KI-Coding-Assistenten: Inline Code Editing

Wir betrachten zunächst eine der Kernaufgaben von KI-Coding-Assistenten: das automatische Schreiben und Anpassen von Quellcode innerhalb des Editorfensters. Dazu gehört auch die Erstellung von Testfällen sowie Unterstützung bei Code-Refactorings.

Die grundlegende Funktion, die beide KI-Coding-Assistenten dafür anbieten, ist eine mal mehr und mal weniger intelligente Auto-Vervollständigung von Code, den man gerade tippt. Dieses Feature nennt man auch Code Completion. Ist die Code Completion aktiviert, erscheint während des Programmierens bei beiden Kandidaten in dezenter Schrift ein Vorschlag, wie sich der Code höchstwahrscheinlich fortsetzt. Solche Vorschläge können sich auch über mehrere Zeilen erstrecken und sind umso besser, je mehr Kontextwissen die Assistenten zur Verfügung haben. Kontext wird dabei unter anderem aus den Code-Zeilen vor und hinter dem Text-Cursor berücksichtigt – meistens werden noch weitere Code-Blöcke innerhalb der geöffneten Datei sowie die weiteren offenen Tabs berücksichtigt. Besonders hilfreich für die KI-Coding-Assistenten sind auch erklärende Code-Kommentare, zum Beispiel vor einer neu zu schreibenden Methode. Eine saubere Code-Dokumentation lohnt sich also nicht mehr nur allein zur Erhöhung der Lesbarkeit von Quellcode, sondern auch als Hilfestellung für die KI.

Beide Kontrahenten erzeugen meist nützliche Code-Schnipsel, die man entweder direkt übernehmen kann oder nur noch leicht anpassen muss. Während der JetBrains AI Assistent kurz nach seinem Release Anfang 2024 hier noch häufiger mal daneben lag, hat sich mit der Version 2024.2 die Qualität seiner Vervollständigungen deutlich gesteigert. Das ist vermutlich eine Folge der Einführung eines speziellen, selbsttrainierten LLMs namens "Mellum" aus eigenem Hause [2]. Damit kommt JetBrains bei der Code Completion qualitativ nahe an den Copilot heran, dessen Vorschläge manchmal noch gefühlt einen Tick treffender sind. Bei der Bedienung gibt es jedoch Unterschiede: Der Copilot macht viel häufiger von sich aus Code-Vorschläge, während man den AI Assistant via Hotkey öfter mal explizit darum bitten muss. Umgekehrt können die sofortigen Vorschläge des Copilot auch aufdringlich wirken. Das gilt insbesondere, wenn noch gar nicht ersichtlich ist, was man mit dem Quellcode eigentlich ausdrücken will. Letztendlich ist es Geschmackssache, welches Verhalten man hier bevorzugt.

Eine Alternative für die Code-Generierung innerhalb des Editor-Fensters ist die sogenannte "Inline Code Generation". Mittels eines kurzen Prompts lässt sich in einem Popup-Fenster die gewünschte Funktionalität beschreiben, die das Large Language Model dann in Quellcode überführt. Auch hier nehmen sich die beiden Kontrahenten hinsichtlich erzeugter Code-Qualität und User Experience nicht sonderlich viel. Bei der Inline-Anpassung von bestehendem Code gefällt uns die UX vom GitHub Copilot jedoch etwas besser: Änderungen werden direkt in der geöffneten Datei an der editierten Stelle angezeigt. Der AI Assistant öffnet die Diff-Ansicht dagegen in einem eigenen Tab, was umständlich wirkt.

Insgesamt sind die Unterschiede zwischen den beiden Kontrahenten beim Schreiben und Anpassen von Quellcode innerhalb des Editorfensters jedoch marginal – daher lassen wir den Vergleich in dieser Kategorie mit Unentschieden ausgehen.

Programmieren mit Künstlicher Intelligenz: Chat with your Code

Beide Tools bieten neben den bisher betrachteten Funktionen im Editorfenster auch die Möglichkeit, sich in einem separatem Chat-Fenster Fragen zum Code beantworten zu lassen oder sich dort Code-Vorschläge zu generieren.Dabei greifen die Kontrahenten für die Erzeugung der Antworten auf bestehende LLMs zurück: Beide KI-Coding-Assistenten bieten jeweils die bekannten Modelle GPT-4o von OpenAI sowie Gemini von Google an. Der Copilot hat zusätzlich Claude Sonnet im Repertoire, während man sich beim AI Assistant mittels Ollama sogar ein lokal laufendes Modell einbinden kann.

Die Nutzung mächtiger Sprachmodelle als Motor der Code-Generierung hilft dabei, auch komplexere Aufgaben an die KI zu delegieren. Dazu hat man als Programmierer mit der Chat-Funktion die Möglichkeit, der KI weiteren Kontext in Form von Code-Referenzen zu geben, Nachbesserungen anzufordern oder sich den erzeugten Code erst mal erklären zu lassen, bevor man ihn in die Codebase übernimmt.

Das funktioniert bei einfachen Verständnisfragen zu einzelnen Quellcode-Dateien bei beiden Tools sehr gut. Auch Aufgaben wie automatisches Bug-Fixing, die Optimierung der Code-Qualität oder das Schreiben von Dokumentation gelingen oft in erstaunlich hoher Qualität. Die besten Ergebnisse erhält man, wenn man den als Kontext übergebenen Code weder zu klein noch zu groß wählt: Die Größenordnung einer Methode oder Code-Blöcke mit zweistelliger Zeilenanzahl haben sich unserer Erfahrung nach hier als Sweetspot erwiesen: Größere Blöcke führen häufiger zu Halluzinationen, während sich bei sehr kleinen Code-Schnipseln der LLM-Einsatz oft nicht lohnt – hier ist man per Hand oftmals schneller.

Der IntelliJ AI Assistant bietet im Zusammenhang mit der Chat-Funktion ein besonders nützliches Feature: Man kann sich eine eigene kleine Prompt-Bibliothek aufbauen, indem man Prompt-Templates speichert und sie später wiederverwendet. Das ist vor allem bei der Verbesserung der Code-Lesbarkeit oder der Performance-Optimierung hilfreich.

Insgesamt bietet die Chat-Funktion des GitHub Copilot jedoch zahlreiche mächtige Features, die dem IntelliJ AI Assistant noch fehlen. So kann man über die @workspace-Referenz gezielt Fragen zur gesamten Code-Basis stellen, ohne den Kontext in Form von Dateien oder Quell-Code-Schnipseln selbst angeben zu müssen. Und auch das Internet oder zusätzliche GitHub-Repositories können im Copilot Enterprise Plan über die Web-Such-Funktion als Wissensquelle für die Beantwortung von Chat-Fragen herangezogen werden. Schließlich lässt sich der Copilot auch noch über sogenannte "Extensions" erweitern, um ihm noch mehr Quellen zu geben: Knapp 30 dieser Extensions sind aktuell (Stand: Dezember 2024) im entsprechenden Marketplace verfügbar. Damit lassen sich z. B. Informationen aus den Atlassian-Tools Jira und Confluence oder aus einer Microsoft Azure Subscription direkt im Copilot-Chat abrufen.

Ein weiteres Highlight des GitHub Copilot: Multi File Editing. Damit werden Änderungen gleich über mehrere Quellcode-Dateien hinweg vorgeschlagen. Die Frage, welche Dateien man für ein neues Feature überhaupt anfassen muss, entfällt damit. Mit dieser Funktion macht der Copilot auch den neuartigen, autonomen Coding-Agentensystemen wie beispielsweise dem Produkt Devin der Firma Cognition AI Konkurrenz [3].

Aufgrund der zahlreichen Zusatzfunktionen im Zusammenhang mit dem integrierten Chat geht der Rundensieg in dieser Kategorie – wenn es nach uns geht – an den Github Copilot.

Was kann Künstliche Intelligenz in der Software-Entwicklung – Beyond the Code

Neben den beiden Hauptfunktionen – dem Code-Generieren im Editor und der Chatfunktion – bieten beide Assistenten noch diverse Gimmicks, die sich an unterschiedlichen Stellen in der integrierten Entwicklungsumgebung befinden. Beide KI-Coding-Assistenten unterstützen beispielsweise beim Umbenennen von Methoden oder Variablen, indem sie unter Nutzung von umgebendem Kontext sinnvolle Namensvorschläge geben. Das ist hilfreich und macht eines der "harten" Probleme der Informatik tatsächlich etwas weicher [4].

Auch bei der Nutzung von GIT gibt es Hilfestellung: Beide Assistenten schreiben eigenständig Commit Messages anhand der geänderten Code-Stellen. Die Änderungen werden dabei meist treffend zusammengefasst. Der Fokus liegt aber immer auf der Fragestellung "Was wurde geändert?" und nicht auf den spannenderen Fragen "Warum?" und "In welchem Zusammenhang?". Besser als eine Commit Message à la "Fixed a Bug" sind die erzeugten Texte aber allemal.

Der AI Assistant erklärt einem darüber hinaus auch beliebige Commits anhand der darin enthaltenen Code-Änderungen. Der Copilot bietet in seiner Enterprise-Variante eine ähnliche Funktion: Hier können ganze Pull Requests zusammengefasst und sogar automatisch einem Review unterzogen werden.

Weitere erwähnenswerte Features sind die automatische Übersetzung von Quellcode in eine andere Programmiersprache (AI Assistant) und Spracheingabe (GitHub Copilot). Wir können bei den "sonstigen Features" keinen klaren Favoriten ausmachen und vergeben daher in dieser Kategorie ein Unentschieden.

Künstliche Intelligenz: Compliance and Code

Die Einhaltung gesetzlicher Vorschriften ist bei Unternehmen die Grundvoraussetzung, um neuartige Tools wie KI-Coding-Assistenten einzuführen. In vielen rechtlichen Teilbereichen befindet man sich mit der Nutzung dieser Tools jedoch aktuell noch in einer Grauzone, da aussagekräftige Urteile fehlen. Ein Verbot dieser neuen Werkzeuge aus Compliance-Gründen kann jedoch zum Entstehen von Schatten-IT führen oder wirkt sich negativ auf die Mitarbeiterzufriedenheit aus. Daher gilt es, einen Weg zu finden, beide Interessen auszugleichen. Von großem Vorteil ist dabei, wenn die Tools von sich aus bereits Features bieten, die das Risiko von Rechtsunsicherheiten minimieren.

Man braucht keine Angst haben, dass der eigene Quellcode als Code-Vorschlag bei der Konkurrenz landet.

Das wichtigste Kriterium dafür erfüllen beide Assistenten: Sie speichern keine Prompt-Daten auf externen Servern – zumindest nicht bei den jeweiligen Business-Tarifen (Github Copilot) und wenn man es nicht explizit aktiviert hat (AI Assistant). Damit ist auch eine Datennutzung für zukünftige Modelltrainings ausgeschlossen: Man braucht also keine Angst davor haben, dass der eigene Quellcode irgendwann als Code-Vorschlag bei der Konkurrenz landet. Das hilft auch bei Themen, die das Urheberrecht betreffen, z. B. wenn man exklusive Quellcode-Rechte an Kunden verkauft.

Die andere Seite der Urheberrechtsmedaille ist die versehentliche Nutzung von unter Copyleft-Lizenz stehendem Code, ohne die entsprechenden Lizenzbedingungen einzuhalten. Derartige Code-Vorschläge sind bei beiden Assistenten nicht hundertprozentig auszuschließen. Der GitHub Copilot prüft aber im Rahmen seines "Public Code Filters" zumindest auf Duplikate in den öffentlichen GitHub-Repositories – nicht jedoch auf anderen Open-Source-Plattformen. Der AI Assistant bietet für seine Kunden ebenfalls einen "Public Clone Filter" [5]. Dieser ist aber lediglich in der großen Enterprise-Variante verfügbar und aktuell auch nur für die Programmiersprachen Java, Kotlin und Python. JetBrains eigenes Modell Mellum, das für die Code Completion genutzt wird, wurde nach eigenen Angaben nur auf Code unter "Permissive License" trainiert [2] , sodass man hier auf der sicheren Seite sein sollte. Bei beiden Assistenten bleibt jedoch ein Restrisiko.

GitHubs Mutterkonzern Microsoft versichert mit einer sogenannten "IP Indemnity" jedoch, dass im Falle eines Urheberrechtsproblems im Zusammenhang mit dem Copilot die Kosten für den entstandenen Schaden übernommen werden [6]. Beim AI Assistant findet man zu diesem Thema lediglich den Hinweis "Protection from IP liability" ohne weitere Erläuterung auf der Webseite der Enterprise-Edition des AI Assistant.

Um Probleme mit dem Datenschutz und Geschäftsgeheimnissen zu vermeiden, kann man beim Copilot bestimmte Dateien und Ordner seines Repositories im Stile eines .gitignore-Files vom Kontext ausschließen. Das heißt, die Inhalte dieser Dateien werden nicht an externe Server geleitet. Der AI Assistant bietet auf der anderen Seite ein Feature, um derartige Probleme gänzlich zu vermeiden: die Nutzung von selbst gehosteten Modellen mittels Ollama. Ollama ist ein Tool, um auf einfache Art und Weise eigene große Sprachmodelle auf dem lokalen Rechner laufen zu lassen. Für gute Ergebnisse setzt das aber leistungsstarke Grafik-Hardware voraus – daher dürfte das für viele Unternehmen nur eine theoretische Option sein.

Hinsichtlich Anwendungssicherheit bietet der GitHub Copilot noch einen sogenannten "Security Vulnerability Filter": Vorgeschlagener Code mit potenziellen Sicherheitslücken wird damit automatisch verworfen und neu generiert.
Zumindest, wenn Selfhosting-Modelle keine Option sind, hat der GitHub Copilot damit auch in dieser Kategorie unserer Meinung nach die Nase vorne.

Künstliche Intelligenz in der Software-Entwicklung: Fazit

Insgesamt besitzt der GitHub Copilot aufgrund seiner Reife einige Zusatzfunktionen, die dem AI Assistant noch fehlen: beispielsweise die automatische Kontextsuche mittels @workspace oder Multi File Editing. Auch bei Compliance-Themen bietet der Copilot mit seinem Public Code Filter, der IP Indemnity und dem Security Vulnerability Filter mehr als die Konkurrenz von JetBrains, die ähnliche Features erst in der teuren Enterprise-Variante anbietet. Daher geht unser Vergleich in der Summe zu Gunsten des GitHub Copilot aus.

Der AI Assistant braucht sich aber nicht zu verstecken: In den Basisfunktionen ist er inzwischen gleichauf mit dem Copilot und bietet mit seiner Prompting Library und Selfhosting-Modellen auch spannende Alleinstellungsmerkmale. Insbesondere, wenn man sowieso schon stark auf JetBrains IDEs setzt, sollte man den AI Assistant in Betracht ziehen. Denn einige Features des GitHub Copilot sind im Plugin für die JetBrains-IDEs auch gar nicht enthalten. Dies könnte in der Entscheidung, welcher KI Coding Assistant besser zum Unternehmen passt, den Ausschlag schließlich doch zu Gunsten von JetBrains geben.

Dies war der erste Teil des Artikels zu den KI-Coding-Assistenten. Im zweiten Teil wollen wir anhand eines Fallbeispiels Tipps zur praktischen Arbeit mit den beiden KI-Coding-Assistenten geben.

AI Assistant, Copilot in VS Code und Copilot in JetBrains: Vergleich der Features

Tabelle 1: Künstliche Intelligenz und Inline Code Editing

 AI AssistantCopilot in VS CodeCopilot in JetBrains IDEs
Auto CompletionXXX
Inline Code GenerationXXX
Inline AI PromptX(Beta)

Tabelle 2: Künstliche Intelligenz und Chatfunktion

 AI AssistantCopilot in VS CodeCopilot in JetBrains IDEs
Ask Code FileXXX
Ask Whole Code BaseX
Code GenerationXXX
Multi File EditX
BugfixingXXX
RefactoringsX (incl. Prompt-Library)(nur per Chat)(nur per Chat)
Write DocumentationXXX
Prompt-TemplatesXX
Web ContextX
ExtensionsX

Tabelle 3: KI-Assistenten in der Software-Entwicklung – Zusatzfunktionen

 AI AssistantCopilot in VS CodeCopilot in JetBrains IDEs
Renaming SuggestionsXX
Write Commit MessagesXX(nur per Chat)
Pull Request Summary & ReviewX
Explain CommitsX
Auto Programming Language ConversionX
Voice InputX

Tabelle 4: Künstliche Intelligenz und Compliance

 AI AssistantCopilot in VS CodeCopilot in JetBrains IDEs
Modelltraining mit PromptsNein (sofern kein Opt-In)Nein (ab Business)Nein (ab Business)
Selfhosting mit OllamaX
Ignore Files from ContextX
Public Code Filter(nur Enterprise und Java, Kotlin, Python)XX
IP Indemnity(keine genauen Informationen verfügbar)XX
Security Vulnerability FilterXX
Autoren
Das könnte Sie auch interessieren

Neuen Kommentar schreiben

Kommentare (0)