Jetzt Starten

Der künstliche Code: GitHub Copilot X

1. April 2023
Manuel

Die künstliche Intelligenz (KI) stellt gerade ganze Industrien auf den Kopf. Und auch das Programmieren ist davon nicht ausgeschlossen. Vor Kurzem wurde GitHub Copilot X veröffentlicht.

Stell dir vor du schreibst einfach nur “Erstelle ein Funktion die Videos in Einzelbilder umwandelt” und die KI erledigt den Rest. Das Ergebnis ist eine perfekt dokumentierte Funktion die genau das tut. Und das natürlich für jede beliebige Programmiersprache.

Und wir reden hier nicht von Theorie sondern von einem Produkt, das schon auf dem Markt ist.

GitHub Copilot X hat einen großen Einfluss auf die Art und Weise wie Code geschrieben wird. Jeder Programmierer wird früher oder später mit KI Tools arbeiten.

Heißt das jetzt, dass alle Programmierer arbeitslos werden? Sehr pessimistische Menschen würden sagen ja.

Meiner Meinung nach ist das aber erst mal ein Werkzeug. Jeder Handwerker hat einen Akkuschrauber, das heißt aber noch lange nicht, dass sich die Schrauben dann von alleine ins Holz drehen.

Als Programmierer kann man damit also deutlich effizienter arbeiten, doch wie genau funktioniert das? Wie schafft es der Copilot X die Effizienz der Entwicklung zu verdoppeln?

Schauen wir uns die wichtigsten Features dieses Werkzeugs an:

Code Vervollständigung

Code Vervollständigung ist jetzt erst mal nichts Neues. Fast alle Editoren vervollständigen die häufigsten Befehle wie z.B. print() in Python oder console.log() in JavaScript.

Screenshot von Code Vervollständigung
Code Vervollständigung die es in den meisten Editoren gibt: Einzelne Befehle können ergänzt werden.

Copilot X macht genau das gleiche aber für ganze Funktion oder Klassen. In dem folgenden Beispiel müsstest du nur die erste Zeile eingeben:

# Rufe die aktuellsten Tweets zum Thema '#KI' von der Twitter API ab
# (Ab hier übernimmt die KI)
import tweepy

def fetch_latest_tweets(api_key, api_secret_key, access_token, access_token_secret):
    # Authenticate with Twitter API
    auth = tweepy.OAuthHandler(api_key, api_secret_key)
    auth.set_access_token(access_token, access_token_secret)
    
    # Create API object
    api = tweepy.API(auth, wait_on_rate_limit=True, wait_on_rate_limit_notify=True)
    
    # Search for tweets with hashtag "#KI"
    tweets = api.search(q="#KI", lang="en", tweet_mode="extended", count=10)
    
    # Print each tweet
    for tweet in tweets:
        print(f"{tweet.user.name} (@{tweet.user.screen_name}) tweeted:\n{tweet.full_text}\n")

Um bei dem Vergleich des Handwerkers zu bleiben: Was vorher ein Schraubenzieher war ist jetzt eben der Akkuschrauber. Damit implementierst du alles deutlich schneller und effizienter.

Achtung: Man sollte dem Code nie blind vertrauen. Z.B. werden in dem Beispiel nur englische Tweets abgerufen. Die KI geht einfach davon aus, dass nur englischsprachige Inhalte relevant sind. Eigentlich wollten wir aber deutsche Inhalte haben.

Daher ist der KI generierten Code immer nur ein Vorschlag der vom Entwickler geprüft werden muss.

Kommandozeile ohne Befehle auswendig lernen

Für mich, eines der wichtigsten Features: GitHub Copilot X wird auch in die Kommandozeile implementiert.

Jeder Entwickler hat doch ein paar Befehle die er/sie ständig googlen muss. Wie merged man nochmal zwei Git Repos? Wie starte ich nochmal die Backend Tests?

Das sind einfach Dinge die man nicht oft genug macht um sie auswendig zu wissen. Und das muss man jetzt auch gar nicht mehr.

Mit ?? kann man in der Kommandozeile nach einem Befehl fragen also z.B.

> ?? use git to merge the current repo with the main branch of repo2

-------------- Command -----------------
git merge --allow-unrelated-histories repo2/main

-------------- Explanation -----------------
- git is used to control the repository
  - --allow-unrelated-histories This will tell the Git that we allow merging branches with no common history base
  - repo2/main This is the repo and branch thath we want to merge

> Run this command
  Revise query
  Cancel

Auch hier kann man bei der Entwicklung wieder unglaublich viel Zeit sparen. Das Programmieren wird immer mehr zu einer Konversation.

Nachhaltiges Bugfixing

Was ist die erste Aktion nach dem ein Bug auftaucht? Fehlermeldung in Google kopieren, Erstbeste Stack Overflow Seite öffnen und versuchen die Lösung zu verstehen.

Auch das geht einfach und besser mit GitHub Copilot. Man markiert einfach den Codebereich in dem der Fehler auftaucht und öffnet den Copilot Chat.

Dort fragt man “Wo ist hier der Fehler?” und die Antwort enthält Losungsansätze und Erklärungen die auch schon direkt zu deinem Code passen.

Der Chat kann hier auch wirklich wie ein Chat verwendet werden. Copilot kann sich an den Verlauf erinnern und man kann nachfragen oder weitere Anweisungen geben.

Das macht auch das Programmieren lernen um einiges leichter. Versteht man eine Funktion oder einen bestimmten Codeabschnitt nicht fragt man einfach nach. Falls die Erklärung noch nicht ausreicht kann man immer weiter nachfragen bis auch alles was dahinter steck geklärt ist.

Nie mehr vernachlässigte Dokumentationen

Der Copilot kann nicht nur Code sondern auch Texte schreiben. Also auch die Dokumentation für einzelne Funktionen oder ganze ReadMe Dateien für die Codebasis.

Die meisten Programmierer die ich kenne (mich selbst eingeschlossen) schreiben sehr gerne Code aber ungerne Dokumentationen. Das zurück denken von Code in “normale Sprache” ist oftmals nervig und bringt kurzfristig keinen Nutzen.

Umso besser, dass Copilot X das übernehmen kann.

Das hat nun wenig mit der Entwicklung von Code zutun sondern eher mit der Wartbarkeit. Da das aber langfristig definitiv wichtig ist, wird der Gesamtprozess effizienter.

Und auch hier ist wieder Vorsicht geboten: Dabei können Fehler entstehen. Wenn die KI die Funktion einer Code Zeile nicht kennt, kann es passieren dass es “halluziniert”. Also völlig frei erfundene Beschreibungen dazu dichtet.

Also gilt auch hier, dass immer alles zumindest überprüft werden muss.

Nie mehr vernachlässigte Tests

Testing kann dem Programmiere einiges an Ärger ersparen. Und auch wenn man kein Fan von Unit-Tests und dergleichen ist, Copilot X kann auch das.

Wie beim Bugfixing kann einfach eine Funktion markiert werden und im Chat nach möglichen Tests gefragt werden.

Der erstellte Code kann dann direkt eingefügt oder erst noch angepasst werden.

Wie funktioniert GitHub Copilot X?

Inzwischen ist ChatGPT überall bekannt. Ein Textmodell, das eine Unmenge an Informationen zum Trainieren hatte und im jetzigen Zustand komplexe Aufgaben lösen kann.

Diese Prinzip lässt sich einfach auf Code erweitern: GitHub hat eine riesen Datenmenge an Repositories – also Zeilen von Code in allen möglichen Programmiersprachen.

Das Sprachmodell wurde mit diesen Daten trainiert und kann somit Code erstellen und verstehen.

Hilfe wir werden alle arbeitslos?

Nein.

Keine kann die Zukunft vorhersagen aber ich denke nicht, dass man als Programmierer bald ausgedient hat.

KI Tools wie der Copilot X von GitHub werden die Arbeit als Programmierer drastisch verändern. Jeder muss lernen mit diesen Werkzeugen richtig umzugehen.

Wir müssen nur lernen diese extrem leistungsstarken Techniken zu nutzen. Nach einer Studie von GitHub selbst konnten Programmierer mit Copilot X doppelt so schnell arbeiten.

Das heißt wir als Entwickler können doppelt so viele Websites, Backends, Web Apps, Software Produkte, etc. entwickeln als zuvor.

Der größte Fehler wäre jetzt sich vor all diesen Technologien zu verschließen. Denn wenn die ganze Konkurrenz doppelt so schnell arbeitet steht man bald mit seinem Schraubenziehen im Regen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Melde dich jetzt für die Early Access Version von Chronosk an

Jetzt Starten
apartment