- Created By
- Daniel Würstl
- published
- 15.01.2024
Warum du eine KI wie GitHub Copilot oder ChatGPT zum Programmieren verwenden solltest
Gründe für die Nutzung von KI für die Softwareentwicklung
Bevor wir in die technischen Details einsteigen, wollen wir kurz überlegen, welche Gründe es gibt, KI für die Softwareentwicklung zu nutzen. Denn hier geht es bei weitem nicht nur um die offensichtliche Zeitersparnis, auch wenn wir damit anfangen:- Zeitersparnis: Code von Hand zu schreiben macht zwar Spaß, aber doppelt so viel in der gleichen Zeit zu schreiben, ist noch viel besser. Eine bemerkenswerte Studie, durchgeführt von GitHub, hat ergeben, dass Entwickler, die GitHub Copilot verwenden, Aufgaben deutlich schneller abschließen können – durchschnittlich 55% schneller im Vergleich zu denen, die es nicht verwenden. Spezifisch genommen benötigten die Entwickler mit Copilot im Durchschnitt 1 Stunde und 11 Minuten für eine bestimmte Aufgabe, während diejenigen ohne Copilot durchschnittlich 2 Stunden und 41 Minuten benötigten [Quelle: GitHub Measures AI-Based Copilot's Productivity Boost].
- Mehr Spaß beim Programmieren: besonders bei repetitiven Aufgaben nimmt einem die KI lästige Mühen ab. So trägt die künstliche Intelligenz zur mentalen Entlastung der Entwickler bei und ermöglicht ihnen, sich auf kreativere und anspruchsvollere Aufgaben zu konzentrieren. Dadurch steigt auch die allgemeine Zufriedenheit und Freude am Coden. Doch nicht nur das Generieren gängiger Standardprozeduren erfreut den Entwickler, sondern insbesondere auch das manuelle Nachschlagen dieser lästigen nicht allzu oft benötigter Methoden und Funktionen entfällt praktisch ganz, weil man in der Kommentarzeile mit ein paar Schlagworten der KI fast immer klarmachen kann, was man von ihr möchte und einen verzehrfertigen Vorschlag vorgesetzt bekommt.
- Besserer Code: Hier wird es schmerzhaft für viele Entwickler, den Autor ausdrücklich eingeschlossen. Wir alle lieben Lösungen, insbesondere solche, die wir uns merken können und die uns dann über Jahre hinweg treu begleiten. Leider - oder Gott sei Dank - entwickeln sich Programmiersprachen aber weiter und oft gibt es für diese so lieb gewonnenen Lösungen modernere, schnellere und sicherere Alternativen, die schnell an einem vorbei gehen, wenn man nicht an der "cutting edge" der Entwicklerfront lebt. Kurz gesagt: fragt man die künstliche Intelligenz geschickt genug, erhält man oft verblüffend eleganten Code, der einem nicht nur das Leben leichter macht, sondern einen auch noch gut aussehen lässt (noch muss man ja nicht auf "KI" als Quelle hinweisen und man kann die Lorbeeren selber einheimsen).
- Weniger Fehler: Copilot (und andere KIs) machen zwar Fehler, aber mit etwas Erfahrung weiß man diese Fehler schneller zu korrigieren, als die eigenen, die man ja in der Regel unbewußt und so versteckt einbaut, dass das Debugging auch schon mal länger als das Coden dauern kann
Wie Du GitHub Copilot in Visual Studio Code aktivierst und nutzt
Zunächst sei noch erwähnt: GitHub Copilot verwendet ein Codex-Modell von OpenAI, das Ergebnis weicht aber kaum von ChatGPT ab, insofern ist es nur die Frage, wie man sich der KI von OpenAI bedient. Die Installation von Copilot in einer IDE ist aber definitiv eleganter, als Fragestellungen in's ChatGPT zu kopieren, auch wenn man dort mittlerweile Dokumente hochladen und so der KI einen umfassenden Einblick in die Codeumgebung geben kann.Schritt 1: Installation von Visual Studio Code
Stelle sicher, dass Du Visual Studio Code (VS Code) auf Deinem Computer installiert hast. Falls nicht, kannst Du es von der offiziellen Website herunterladen und installieren. VS Code ist ein leistungsstarker und vielseitiger Editor, ideal für die Entwicklung in allen gängigen Programmiersprachen und heute der Quasi-Standard; insbesondere wegen der immensen Commuity, die für jede Anforderung eine Extension zur Verfügung stellt.
Schritt 2: GitHub Copilot installieren
Öffne VS Code und navigiere zum Extensions-Marktplatz. Suche dort nach "GitHub Copilot". Sobald Du es gefunden hast, klicke auf die Schaltfläche "Installieren". Dieser Schritt fügt die Copilot-Funktionalität zu Deinem VS Code hinzu, wodurch Du Zugriff auf intelligente Code-Vorschläge erhältst.
Schritt 3: GitHub Copilot Abo
Logge dich bei GitHub ein und bestelle dir im Usermenu->Copilot den Service (Aktuell zu USD 10 pro Monat - eine sehr gut angelegte Investition)
Schritt 4: GitHub-Konto verknüpfen
Nach der Installation von Copilot musst Du Dein GitHub-Konto mit VS Code verknüpfen. Öffne hierfür ein neues oder bestehendes Projekt in VS Code. Beim ersten Gebrauch von Copilot wirst Du aufgefordert, Dich bei Deinem GitHub-Konto anzumelden. Dies ermöglicht Copilot, auf Deine Projekte und Codepräferenzen zuzugrezugreifen. Dieser Schritt ist wichtig, um die volle Funktionalität von Copilot nutzen zu können.
Schritt 5: Copilot aktivieren
Nachdem Du Dich angemeldet hast, wird Copilot automatisch in VS Code aktiviert. Du erkennst dies daran, dass beim Schreiben von Code Vorschläge von Copilot in Form von grauem Text erscheinen. Diese Vorschläge sind basierend auf Deinem aktuellen Code und anderen ähnlichen Codebeispielen, die Copilot gelernt hat.
Schritt 6: Effektive Nutzung von Copilot
- Schreiben von Kommentaren
Beginne damit, Kommentare in Deinen Code einzufügen, in denen Du beschreibst, was der Code tun soll. Copilot versteht den Kontext aus diesen Kommentaren und schlägt entsprechenden Code vor. Damit erfüllst du nebenbei auch noch die oft gehörte Anforderung nach der Codekommentation. Wenn du den Vorschlag annehmen möchtest, reicht wie gewohnt der "Tab", um den Vorschlag in baren Code zu verwandeln.
- Question/Answer Syntax: Hast du eine allgemeinere Frage zu der Programmiersprache oder zum Beispiel einer Best-Practice dann kannst du deinem Kommentar auch ein "q" voranstellen und damit den allgemeineren Fragekontext verdeutlichen:
- GitHub Copilot Suggestions - Vorschlagsliste mit STRG + ENTER: Ist einem der Vorschlag aus der Kommentarzeile nicht gut genug, kann man durch die Tastenkombination ein separates Copilot Fenster öffnen, in dem bis zu 10 verschiedene, dann meist auch ausführlichere Codeschnipsel generiert werden, aus denen man dann einen passenden auswählen kann.
Weitere Use-Cases für die Nutzung von KI bei der Entwicklung
TDD: Test Driven Development
Ein gutes Einsatzszenario ist, zunächst einen Test für die Software zu schreiben, die man entwickeln möchte. Die KI ist dann in der Regel in der Lage, den Code zu schreiben, der die im Test definierten Anforderungen erfüllt.Übersetzung und Sprachunterstützung durch die KI
Du kannst Copilot in jeder gängigen Sprache nutzen, auch für Übersetzungen, wenn dir etwas das englische Wort nicht einfällt. Oder es lassen sich auch ganze mehrsprachige Inhalte generieren:Daten und Listen
Die KI kennt nicht nur deinen Code, sondern auch den von vielen anderen Entwicklern. Das lässt sich etwa bei Nachschlagelisten sehr effektiv einsetzen, indem man einfach präzise vorgibt, welche Daten man benötigt und den generierten Code übernimmt. Eventuell zu gut gemeinter und überzähliger Code kann danach schnell entfernt werden:Suchen und validieren mit Regulären Ausdrücke
Reguläre Ausdrücke sind ein mächtiges Werkzeug, um Texte zu durchsuchen und zu manipulieren. Sie sind aber auch schwer zu lesen und zu schreiben. Copilot kann hier helfen, indem es die Regulären Ausdrücke für dich generiert. Du musst nur noch die gewünschten Parameter anpassen und den Code übernehmen:Hilfedokument: Erste Schritte mit Copilot
Mögliche Fehlerquellen und Schwächen bei der Nutzung von AI/KI zur Programmierung
Kaum installiert, machen wir uns aber doch noch etwas Sorgen über die Zuverlässigkeit und die Eigenwilligkeiten dieser künstlichen Intelligenz. Die wollen wir hier kurz beleuchten, um uns dann, gut gewappnet, in die schöne neue Welt des Codens zu stürzen.- Fehlerhafte oder Unvollständige Code-Vorschläge: Generierte Codeschnipsel können fehlerhaft oder unvollständig sein. Copilot liebt es besonders, einem einen toll aussehenden Vorschlag zu unterbreiten mit Schleifen (und Sternchen) und auch die Variablen sehen wunderbar vertraut und plausibel aus. Aber leider gibt es die so gar nicht im Code sondern nur im Wunschdenken des Entwicklers, der den Code möglichst genau so verwenden will.
- Fehlende Anpassung an Spezifische Projektstandards: Vorschläge entsprechen möglicherweise nicht immer den spezifischen Codierungsstandards eines Projekts oder Teams. So wird beispielsweise TypeScript schnell wie JavaScript behandelt
- Übermäßige Abhängigkeit von Automatisierten Vorschlägen: Risiko, dass Entwickler ihre eigene Problemlösungsfähigkeit und Kreativität vernachlässigen (zu Deutsch: die Verdummung der Entwickler). Dieser Punkt hat allerdings etwas arg philosophisches und kann uns, die wir auf den schnellen Erfolg bedachten sind, wumpe sein, oder? Selber blöd, wer meint Entwickler würden dumm durch KI. Fölliger Kwatsch!
- Sicherheitsbedenken: Potenzielle Sicherheitsrisiken durch die Verwendung von unsicherem oder veraltetem Code in den Vorschlägen.
- Urheberrechtliche Bedenken: Rechtliche Herausforderungen durch die Erzeugung von urheberrechtlich geschütztem Code.
- Unzureichende Berücksichtigung des Kontextes: Manchmal unpassende oder irrelevante Code-Vorschläge aufgrund von Kontextmangel.
GitHub Copilot: Eine technische Perspektive
Grundlagen
GitHub Copilot ist eine künstliche Intelligenz (KI) / Artificial Intelligence (AI)-basierte Code-Vervollständigungs-Tool, entwickelt von GitHub in Zusammenarbeit mit OpenAI. Es basiert auf einem leistungsfähigen maschinellen Lernmodell, das aus einer Vielzahl von Quellcode-Beispielen trainiert wurde.
Warum und wie es funktioniert
Copilot nutzt ein fortschrittliches Machine Learning Modell, speziell ein Transformator-basiertes Sprachmodell, das für seine Fähigkeit bekannt ist, komplexe Muster in Daten zu erkennen und vorherzusagen. Dieses Modell wurde mit einer großen Menge an öffentlich verfügbarem Code und zugehörigen Kommentaren aus zahlreichen Repositories trainiert. Die Stärke von Copilot liegt in seiner Fähigkeit, den Kontext des geschriebenen Codes zu verstehen und Vorschläge zu machen, die nicht nur syntaktisch korrekt, sondern auch kontextuell relevant sind.
Warum es so gut funktioniert
Die Effektivität von Copilot beruht auf seiner Fähigkeit, aus einer umfangreichen und vielfältigen Codebasis zu lernen. Durch die Analyse und das Verständnis von Mustern und Praktiken aus einer Vielzahl von Quellen kann Copilot Vorschläge machen, die oft intuitiv und hilfreich sind. Es lernt kontinuierlich und passt sich neuen Programmierstilen und -techniken an, was es zu einem wertvollen Werkzeug für Entwickler macht.
Optimale Programmiersprachen
Copilot funktioniert besonders gut mit populären Programmiersprachen wie Python, JavaScript, Java und Ruby, aber auch mit spezielleren wie Dart und Swift, die zur App Programmierung genutzt werden. Die Effizienz und Genauigkeit in diesen Sprachen ist bemerkenswert, da das Training des Modells eine breite Palette von Repositories in diesen Sprachen beinhaltet.