KI-gestützte Programmierung: Untersuchen moderner Programmierassistenten in Visual Studio Code


Bicycle

In dem sich ständig weiterentwickelnden Bereich der Softwareentwicklung haben sich KI-Assistenten als leistungsstarke Tools zur Steigerung der Produktivität und Codequalität erwiesen. Integriert in beliebte IDEs wie Visual Studio Code bieten diese intelligenten Assistenten Code-Vorschläge in Echtzeit, Debugging-Hilfe, Optimierungstipps oder sogar Live-Chat-Unterhaltungen.

Führend ist der GitHub Copilot, der für sein kontextbezogenes Verständnis und relevante Codevervollständigungen bekannt ist. Es gibt jedoch noch einige andere bemerkenswerte Alternativen, darunter spezialisierte Tools wie Codeium, Cody, Blackbox und Tabnine sowie selbst gehostete Sprachmodelle wie Llama Coder mit Ollama.

In diesem Blogbeitrag werden wir KI-Assistenten untersuchen und uns dabei auf ihre Integration in Visual Studio Code konzentrieren. Wir stellen die einzelnen Tools vor, heben ihre wichtigsten Funktionen hervor und bewerten ihre Leistung anhand einer Demo-Anwendung. Am Ende werden wir ein klares Verständnis davon haben, wie diese KI-Assistenten den Coding-Workflow verändern können und uns helfen, das beste Tool für unsere Bedürfnisse auszuwählen.

GitHub Copilot

GitHub Copilot, entwickelt von GitHub in Zusammenarbeit mit OpenAI, hat sich schnell zu einem der bekanntesten KI-Assistenten entwickelt. Copilot ist nahtlos in Visual Studio Code integriert und nutzt die Leistung des Codex-Modells von OpenAI, um intelligente Code-Vorschläge, vollständige Code-Schnipsel zu liefern und sogar ganze Funktionen auf der Grundlage von Beschreibungen zu generieren.

Visual Studio Code-Erweiterung für GitHub Copilot

GitHub Copilot

Was mit GitHub Copilot möglich ist:

  • Kontextabhängige Vorschläge: Bietet relevante Code-Vervollständigungen auf der Grundlage des umgebenden Codes, der Funktionsnamen und der Kommentare.
  • Natürliche Sprachverarbeitung: Übersetzt einfache englische oder deutsche Beschreibungen in funktionalen Code, basierend auf dem gegebenen Kontext.
  • Mehrsprachenunterstützung: Arbeitet mit zahlreichen Programmiersprachen und Frameworks, von Python bis JavaScript, Go und C++.
  • Lernen und Anpassen: Passt sich mit der Zeit an den Programmierstil an und verbessert die Genauigkeit seiner Vorschläge auf der Grundlage des vorhandenen Codes.
  • Inline-Dokumentation: Generiert Kommentare und Dokumentationen neben dem Code und verbessert so die Klarheit und Wartbarkeit des Codes.

GitHub Copilot bietet drei Tarife an: Individual ($10/Monat) für Einzelentwickler, Studenten und Lehrende, mit unbegrenztem Chat und Codevorschlägen in Echtzeit; Business ($19/Benutzer/Monat) für Unternehmen, mit Benutzerverwaltung, Datenausschluss vom Modelltraining, IP-Haftungsfreistellung und SAML SSO; und Enterprise ($39/Benutzer/Monat) für Unternehmen, die erweiterte Anpassungen benötigen, einschließlich fein abgestimmter Modelle, Pull-Request-Analyse und erweiterter Verwaltungsrichtlinien.

Codeium

Genau wie GitHub Copilot verspricht Codeium einen fortschrittlichen Programmierassistenten mit Autovervollständigung, Kontexterkennung und Chat - und das alles kostenlos. Codeium nutzt hausintern trainierte Modelle und bietet kostenlosen Zugang zu fortschrittlicher Codevervollständigung, Suchfunktionen und einer interaktiven Chatfunktion, was es zu einer attraktiven Alternative zu Copilot macht. Dieser Dienst unterstützt eine breite Palette von Programmiersprachen und lässt sich nahtlos in zahlreiche IDEs integrieren.

Visual Studio Code-Erweiterung für Codeium

Codeium

Was mit Codeium möglich ist:

  • Kontextabhängige Vervollständigung: Ähnlich wie GitHub Copilot bietet Codeium kontextabhängige Vorschläge für mehr als 70 Programmiersprachen.
  • Vollständige Kenntnis des Repo-Kontextes: Analysiert die gesamte Codebasis, um die Struktur, Abhängigkeiten und Beziehungen zu verstehen und verbessert so die Codevorschläge und die Navigation.
  • Intelligente Suche: Findet Dateien und Code innerhalb eines Projektordners mithilfe von Eingabeaufforderungen.
  • Variable Bereitstellungsoptionen: Bietet SaaS für Cloud-basierten Zugriff, On-Premise-Installation für interne Kontrolle und Bereitstellung innerhalb einer VPC für erhöhte Sicherheit in einer öffentlichen Cloud-Umgebung.
  • SOC-2-Typ-2-zertifiziert: Wurde einem Audit unterzogen, das die Einhaltung strenger Standards für Sicherheit, Verfügbarkeit, Verarbeitungsintegrität, Vertraulichkeit und Datenschutz gewährleistet und den Nutzern einen robusten Datenschutz garantiert.

Einzelpersonen können die Funktionen von Codeium kostenlos nutzen, darunter die automatische Code-Vervollständigung, einen KI-Chat-Assistenten im Editor, unbegrenzte Nutzung mit Verschlüsselung während der Übertragung und Unterstützung über Discord. Für Teams mit bis zu 200 Plätzen bietet Codeium einen Plan für $12 pro Platz und Monat an, der zusätzliche Vorteile wie ein Admin-Nutzungs-Dashboard, eine Platzverwaltung, erweiterte Personalisierung, GPT-4-Unterstützung und eine unternehmensweite Zero-Day-Retention mit zukünftigen Funktionen wie der Dokumentensuche bietet.

Cody

Sourcegraph Cody ist ein open-source KI-Assistent, der KI-generierte Autovervollständigung bietet, Fragen zum Code beantwortet und Code schreibt und korrigiert. Er verwendet verschiedene Modelle und bezieht den Kontext sowohl aus lokalen als auch aus remote Repositories und verfügt über benutzerdefinierte Befehle und austauschbare LLMs.

Visual Studio Code-Erweiterung für Cody

Cody

Was mit Cody möglich ist:

  • Autovervollständigen: Cody vervollständigt automatisch einzelne Zeilen oder ganze Funktionen in jeder Programmiersprache, Konfigurationsdatei oder Dokumentation.
  • Chat: Ermöglicht Konversationsabfragen mit Cody, um Antworten auf Programmierthemen oder spezifische Fragen in Bezug auf die Codebasis zu erhalten.
  • Eingebaute Befehle: Verbesserung des Entwicklungs-Workflows mit Codys eingebauten Befehlen zum Verstehen, Verbessern, Reparieren, Dokumentieren und Generieren von Unit-Tests für Code.
  • Benutzerdefinierte Befehle (Beta): Ermöglicht die Anpassung von Cody an einen bestimmten Arbeitsablauf mit benutzerdefinierten Befehlen, die als JSON innerhalb des Repositorys definiert sind.
  • LM wählen: Cody Pro-Nutzer können aus einer Reihe von großen Sprachmodellen, einschließlich Claude- und ChatGPT-Varianten, wählen, um ihren KI-Assistenten anzupassen.
  • Cody Natural Language Search (Beta): Nutzt Natural Language Abfragen, um schnell relevante Dateien in der Codebasis zu finden und zu öffnen.
  • Codesearch: Angetrieben von Sourcegraphs Codesearch, erweitert Cody seine Fähigkeiten, indem es den Kontext ganzer Projekte abruft und so die Generierung von genauem Antwortcode ermöglicht.

Der Kostenlos-Plan ist für eine geringe Nutzung ausgelegt und bietet 500 Autovervollständigungen sowie 20 Nachrichten und Befehle pro Monat. Es bietet grundlegenden Code-Kontext und Personalisierung für kleine lokale Codebasen, mit Standard-LLM-Unterstützung für Chat, Befehle und Autovervollständigung. Ein Upgrade auf den Pro-Plan, der $9 pro Benutzer und Monat kostet, ist ideal für professionelle Entwickler und kleine Teams mit unbegrenzten Autovervollständigungen und Nachrichten sowie einer auf größere lokale Codebasen zugeschnittenen Personalisierung. Außerdem bietet es mehrere LLM-Auswahlmöglichkeiten für Chats und Standard-LLMs für die automatische Vervollständigung. Der Enterprise-Tarif für $19 pro Benutzer und Monat bietet eine erweiterte Personalisierung für Unternehmenscodebasen, flexible LLM-Auswahlmöglichkeiten und zusätzliche Features wie flexible Bereitstellungsoptionen und Verwaltungssicherheitsfunktionen.

Blackbox

Blackbox AI ist ein umfassender KI-Assistent mit Code-Vorschlägen, -Generierung und -Chat. Die Visual Studio Code Erweiterung bietet darüber hinaus KI-generierte Commit-Nachrichten und verfolgt lokale Projektänderungen. Sie konzentriert sich auf die Codegenerierung aus Beschreibungen und enthält eine Suchfunktion.

Visual Studio Code-Erweiterung für Blackbox

Blackbox

Was mit Blackbox möglich ist:

  • Code-Chat: Umfasst konversationelle Coding-Abfragen mit Blackbox AI Chat, die sofortige Antworten auf Coding-Fragen liefern und die Zusammenarbeit verbessern.
  • Autovervollständigung von Code: Erhöht die Programmiergeschwindigkeit mit der Blackbox-Funktion zur automatischen Vervollständigung von Code, die für mehr als 20 Programmiersprachen verfügbar ist, darunter Python, JavaScript, TypeScript, Go und Ruby.
  • AI Commit: Vereinfacht den Commit-Prozess mit KI-generierten Commit-Nachrichten, die präzise und informative Beschreibungen für Projektänderungen gewährleisten.
  • Code Generierung: Generiert sofort Code-Vorschläge aus einer Text-Eingabeaufforderung und steigert die Produktivität.
  • DIFF View: Verfolgt Projektänderungen lokal mit BLACKBOX DIFF und nutzt die Git Versionskontrolle, um die Projektentwicklung zu überwachen und Debugging- und Code-Review-Prozesse zu verbessern.
  • Code Search: Holt relevanten Code-Kontext aus der gesamten Codebasis, um genaue Suchergebnisse zu liefern und spezifische Code-Schnipsel oder Lösungen für Programmierprobleme zu finden.

Blackbox AI bietet eine Onboarding-Call-Funktion, die potenziell personalisierte Unterstützung und Anleitung für Benutzer bietet, sowie ein monatliches $9 Pro+ Abonnement für unbegrenzte Autovervollständigung und Code-Chat.

Tabnine

Tabnine zeichnet sich als KI-Assistent aus, der auf hochwertigen öffentlichen Code-Repositories trainiert wurde und sowohl cloudbasierte als auch lokale Lösungen anbietet. Er nutzt unter anderem proprietäre LLMs, die auf Unternehmen zugeschnitten sind. Er unterstützt verschiedene IDEs sowie eine breite Palette von Sprachen und Frameworks.

Visual Studio Code-Erweiterung für Tabnine

Tabnine

Was mit Tabnine möglich ist:

  • Code Generierung: Zeichnet sich durch die Generierung von qualitativ hochwertigen Codeschnipseln, automatisch vervollständigten Zeilen und ganzen Funktionen aus. Es unterstützt mehrere Programmiersprachen.
  • KI-Chat: Bietet eine KI-gestützte Chatfunktion, die verschiedene Phasen des Softwareentwicklungszyklus unterstützt, einschließlich Code-Erklärungen, Testerstellung, Dokumentation und Fehlerbehebung.
  • Personalisierung: Bietet personalisierte Unterstützung bei der Programmierung und austauschbare Modelle, die auf den Programmierstil und die Muster zugeschnitten sind. Es lernt von der Codebasis und integriert sich in die Entwicklungsumgebung, um kontextabhängige Vorschläge zu liefern, die sich im Laufe der Zeit verbessern.
  • Datenschutz und Sicherheit: Gewährleistet den vollständigen Schutz des Codes, ohne dass Daten gespeichert werden. Dies ist entscheidend für Unternehmen und Entwickler, die sich um die Sicherheit ihres eigenen Codes sorgen.
  • Performance: Die KI-Engine ist so konzipiert, dass sie Code-Vorschläge in Echtzeit und ohne spürbare Verzögerung liefert, so dass Entwickler einen reibungslosen und ununterbrochenen Arbeitsablauf gewährleisten können.
  • Flexibler Einsatz: Je nach Abonnement bietet Tabnine KI-Unterstützung auf dem Gerät oder in der Cloud.

Tabnine bietet drei Tarife an, die den unterschiedlichen Bedürfnissen der Nutzer entsprechen. Der Basic-Plan ist kostenlos und umfasst ein KI-Code-Vervollständigungsmodell auf dem Gerät, das für einfache Projekte geeignet ist. Der Pro-Tarif für $12 pro Nutzer und Monat mit einer 90-tägigen kostenlosen Testphase bietet erweiterte Funktionen wie erstklassige KI-Modelle, Codevervollständigungen mit allen Funktionen, Codegenerierung in natürlicher Sprache und SaaS-Bereitstellung. Der Enterprise-Plan, der $39 pro Benutzer und Monat kostet und für ein Jahr gilt, umfasst alle Pro-Funktionen sowie erweiterte Personalisierung, private Code-Repository-Modelle, flexible Bereitstellungsoptionen, vorrangigen Support und umfassende Tools für die Teamverwaltung und Berichterstattung.

Llama Coder und Ollama

Llama Coder bietet eine robuste, datenschutzfreundliche Alternative zu herkömmlichen Cloud-basierten KI-Assistenten wie GitHub Copilot. Dieses Tool wurde für die lokale Ausführung entwickelt und bietet leistungsstarke KI-Funktionen direkt auf dem Computer, was je nach Hardware einen verbesserten Datenschutz und eine Leistung mit geringer Latenz gewährleistet.

Ollama

[Ollama] (https://ollama.com/) ist eine Plattform, die es Entwicklern ermöglicht, fortschrittliche KI-Modelle wie Codellama und Stable Code lokal auf ihrer Hardware auszuführen und mit ihnen zu experimentieren. Dieser Ansatz nutzt die lokale Leistungsfähigkeit, um schnelles und sicheres KI-gestütztes Coding zu ermöglichen.

Was mit Ollama möglich ist:

  • Lokale KI-Bereitstellung: Alle KI-Berechnungen werden auf dem lokalen Rechner durchgeführt, wodurch der Datenschutz gewährleistet wird und die Notwendigkeit einer Cloud-basierten Verarbeitung entfällt. LLMs können feinabgestimmt und an die jeweiligen Bedürfnisse angepasst werden.
  • Mehrere KI-Modelle: Unterstützt verschiedene Modelle, einschließlich unterschiedlicher Parametergrößen und Quantisierungsstufen, die eine Verwaltung und Anpassung an die Hardware-Fähigkeiten ermöglichen.
  • API: Ollama stellt eine lokale API zur Verfügung, über die LLMs direkt in Anwendungen und Workflows integriert werden können.

Llama Coder Erweiterung

Llama Coder ist eine Erweiterung für Visual Studio Code, die mit Ollama integriert wird, um eine selbst gehostete KI-Unterstützung anzubieten. Sie bietet intelligente Code-Vervollständigungen und -Vorschläge, die die Produktivität und die Effizienz steigern, ohne die Privatsphäre zu beeinträchtigen.

Visual Studio Code-Erweiterung für Llama

Llama

Was mit Llama Coder möglich ist:

  • Autovervollständigung von Code: Liefert präzise Codevervollständigungen in Echtzeit.
  • Mehrsprachige Unterstützung: Kompatibel mit verschiedenen Programmiersprachen, so dass es vielseitig für verschiedene Entwicklungsumgebungen verwendet werden kann.
  • Datenschutzorientiert: Keine Telemetrie oder Datenverfolgung, so dass sämtliche Aktivitäten privat bleiben.
  • Modellflexibilität: Ermöglicht die Auswahl eines beliebigen, auf den Benutzer abgestimmten Modells von Ollama. Das Modell kann lokal oder auf einem remote Endpoint installiert werden.

Die Nutzung von Llama Coder und Ollama ist völlig kostenlos, es fallen keine Kosten für die Nutzung der Funktionen an. Die einzige Einschränkung sind die Hardware-Anforderungen: Sie funktionieren am besten auf Apple Silicon Macs (M1/M2/M3) oder Systemen, die mit einer RTX 4090 GPU ausgestattet sind. Die Benutzer müssen sicherstellen, dass sie über ausreichenden Arbeitsspeicher verfügen, wobei ein Minimum von 16 GB empfohlen wird, um die Möglichkeiten von Llama Coder effektiv nutzen zu können. Dies macht Llama Coder zu einer kostengünstigen Lösung für Entwickler, die bereits über geeignete Hardware verfügen oder bereit sind, in diese zu investieren.

Ein kleiner Vergleich

In diesem Testszenario evaluieren wir die Leistung und Unterstützung der KI-Assistenten bei der Entwicklung einer LangChain Research Augmented Generation (RAG)-Anwendung unter Verwendung von Ollama LLMs in Python. Unser Fokus liegt darauf, wie diese Assistenten bei Programmieraufgaben helfen, insbesondere bei der Integration des LLM in das LangChain-Framework.

GitHub Copilot begann stark, indem er die gesamte Funktion automatisch vervollständigte, gleich nachdem ich die Rahmen- und Funktionsdefinition geschrieben hatte. Die meisten Vorschläge erschienen schnell und waren präzise. Der Inline-Prompt-Chat kann sogar Codeabschnitte erklären, korrigieren oder dokumentieren. Aufgrund mangelnder Kenntnisse über die von mir verwendeten Frameworks vernachlässigte der Assistent jedoch oft wichtige Details wie erforderliche Parameter und frameworkspezifische Konfigurationen. Dies führte manchmal zu unvollständigen oder falschen Implementierungen, die manuelle Anpassungen erforderten, damit der Code korrekt funktionierte.

Codeium reagierte auch schnell auf meine Eingaben und generierte präzise Vorschläge. Da Codeium auf mein lokales Repository zugreifen kann, kannte es bereits wichtige Aspekte des LangChain-Frameworks und generierte in kürzester Zeit eine laufende RAG-Anwendung. Diese Fähigkeit, Kontext aus vorhandenen Dateien im Repository zu nutzen, verbesserte die Relevanz und Genauigkeit der Vorschläge erheblich. Aber auch ohne ähnliche vorhandene Dateien fand Codeium schnell eine Lösung, obwohl es einige Probleme gab. Es traten gelegentlich Probleme mit weniger häufigen Anwendungsfällen und spezifischen Konfigurationen auf, aber insgesamt erwies sich Codeium als zuverlässiger Assistent, der mit minimalen Eingriffen schnell funktionalen Code generieren konnte.

Mit Cody waren die Antworten im Chat schnell und effizient. Nach einer groben Beschreibung der Anwendung über die Chat-Schnittstelle implementierte der Assistent schnell den erforderlichen Code und fügte sogar eine kleine Eingabefunktion hinzu, die dynamische Fragen ermöglichte. Dank Codys Fähigkeit, meine Codebasis zu scannen, fand er auf Anhieb eine Lösung. Ohne diesen zusätzlichen Kontext konnte Cody jedoch nicht so schnell reagieren und hatte auch nach verschiedenen "Hinweisen" Mühe, die optimale Lösung zu finden.

Blackbox verfolgte im Vergleich zu anderen Assistenten einen unterschiedlichen Ansatz. Zunächst versuchte es, eine völlig andere Anwendung zu erstellen und hatte Schwierigkeiten, die Codegenerierung abzuschließen. Der Prozess war im Vergleich zu anderen Assistenten deutlich langsamer und hatte weniger Benutzerinteraktion, insbesondere bei der Codevervollständigung, und die Codegenerierung wurde häufig nicht abgeschlossen.

Tabnine hat sich bei der Erstellung der Anwendung als sehr nützlich erwiesen, obwohl es aufgrund der Beschränkungen des kostenlosen Tarifs vor allem nur kleinere Codeabschnitte fertiggestellt hat. Besonders hervorzuheben ist, dass Tabnine als einziger Assistent eine ausgefeiltere Benutzeroberfläche bietet, die es dem Benutzer ermöglicht, zwischen Modellen zu wechseln und weitere Einstellungen vorzunehmen. Trotz der Basisversion hatte ich die Flexibilität, die Bereitstellungsmodi anzupassen. Es gab jedoch Fälle, in denen das Tool nicht reagierte, insbesondere bei der Verwendung im lokalen Modus.

Die Llama Coder Extension war einfach einzurichten. In einem Menü konnte ich ein bestimmtes Modell auswählen, wobei allerdings sichergestellt werden musste, dass das Modell lokal durch Ollama installiert war. Der Assistent selbst brauchte einige Zeit, um Vorschläge zu generieren, und produzierte manchmal sinnvolle und prägnante Ausgaben, während er zu anderen Zeiten den Kontext des umgebenden Codes überhaupt nicht erfasste.

Letztendlich stellt dieser Vergleich nicht die wahre Effektivität der Werkzeuge dar, da diese immer vom Programmierstil und der Leistung für eine bestimmte Sprache sowie vom gewählten Modell abhängt. Er bietet jedoch die Möglichkeit, unsere Erfahrungen mit diesen künstlichen Paarprogrammierern zu teilen und Einblicke in ihre Stärken und Schwächen in verschiedenen Szenarien zu geben.

Schlussfolgerung

Zum Abschluss unserer Erkundung von KI-Assistenten ist es wichtig zu wissen, dass es eine Vielzahl anderer Tools gibt, die alle ihre eigenen Funktionen und innovativen Features beseitzen. Die besprochenen Tools bieten einen Einblick in die Vielfalt der Optionen, die Entwicklern zur Verfügung stehen, und zeigen fortschrittliche Funktionen wie kontextbezogenes Verständnis, benutzerdefinierte Befehle, datenschutzorientierte Bereitstellung und mehr. Die Landschaft der künstlich assistierten Programmierung entwickelt sich jedoch ständig weiter, wobei neue Tools auftauchen und bestehende weiterentwickelt werden, um den sich ständig ändernden Anforderungen der Entwickler gerecht zu werden.

Zurück Unsere Trainings entdecken

Wir sind für Sie da

Sie interessieren sich für unsere Trainings oder haben einfach eine Frage, die beantwortet werden muss? Sie können uns jederzeit kontaktieren! Wir werden unser Bestes tun, um alle Ihre Fragen zu beantworten.

Hier kontaktieren