GitHub-CEO: In Zukunft werden Programmierer wie Dirigenten sein und ein Team aus KI-Systemen leiten.
Mit dem rapiden Aufstieg von generativem KI-Technologie erlebt die Welt derzeit eine beispiellose Umgestaltung von Branchen und Berufen. "Wird die KI Programmierer ersetzen?" Dies ist eine der am häufigsten diskutierten Fragen in der Entwicklergemeinschaft geworden. Die rasanten Iterationen von Tools wie automatischem Schreiben, KI-gestütztem Zeichnen und Codegenerierung haben bei vielen Mitgliedern dieser Berufsgruppe Sorgen um eine unsichere Zukunft ausgelöst: Werden sie in Zukunft noch eine Stellung im Beruf haben? Vor allem im Bereich der Softwareentwicklung werden Tools wie GitHub Copilot und ChatGPT als markante Signale für eine mögliche "Umwälzung" der Programmierer-Stellen angesehen.
Kürzlich war Thomas Dohmke, der CEO der weltweit größten Code-Hosting-Plattform GitHub, als Gast im Podcast "Eye on AI" und diskutierte, wie die KI die Programmierwelt für immer verändert hat. Dohmke sagte: Die KI ist nicht da, um Programmierer zu ersetzen, sondern hilft Entwicklern, sich zu "Agentenkommandanten" zu entwickeln. Nach seiner Meinung wird die Zukunft der Softwareentwicklung eine Zeit der tiefen Zusammenarbeit zwischen Menschen und KI-Agenten sein.
Im Folgenden die Kernaussagen von Dohmke:
- Die KI-Technologie hilft dabei, das Programmierparadigma neu zu gestalten. GitHub Copilot hat bereits 46 % der Codezeilen generiert. Natürliche Sprache wird zur "allgemeinen Programmiersprache".
- Die Revolution der Kollaboration mit KI-Agenten steht kurz bevor. GitHub wechselt von der "Kollaboration zwischen Menschen" zur "Kollaboration zwischen Menschen und KI-Agenten" und hat drei Arten von KI-Agenten für Programmierung, Überprüfung und Reparatur eingeführt.
- Die Rolle der Entwickler wird sich in "Agentenkommandanten" verwandeln. Ihre Kernfähigkeiten werden in die Zerlegung von Aufgaben, die Beschreibung von Anforderungen und die Entscheidungen bei der Kollaboration mit KI-Agenten umgewandelt.
- Das Ziel von GitHub ist es, die Anzahl der Entwickler von 150 Millionen auf eine Milliarde zu erweitern, damit jeder lernen kann, Code zu schreiben und ein Schöpfer von Software anstatt nur ein Verbraucher wird.
- In Zukunft können Entwickler frei zwischen KI-Modellen wie GPT und Claude wechseln, und die Kosten für einen Wechsel zu einem anderen Modell und einen erneuten Versuch sind sehr niedrig.
- Die KI wird keine Entwickler ersetzen, sondern ihre Arbeit beschleunigen und mehr Menschen dazu anregen, sich an der Softwareentwicklung zu beteiligen. In Zukunft wird die Open-Source-Kultur die weltweite Zusammenarbeit von Entwicklern über nationale Grenzen hinweg weiterhin vorantreiben und ein stärkeres Innovationsnetzwerk bilden.
Im Folgenden die wichtigsten Punkte des neuesten Gesprächs mit Dohmke:
01 GitHub ist nicht nur ein Code-Repository, sondern auch ein Zuhause für Entwickler
Frage: Wenn ich an GitHub denke, finde ich, dass es weit über die einfache Definition eines "Code-Repositorys (Code Repository, also ein systematischer Speicherplatz zur Speicherung, Verwaltung und Verfolgung von Codeänderungen in Projekten)" hinausgeht. Können Sie kurz die Entwicklungsgeschichte von GitHub zusammenfassen?
Dohmke: GitHub war von Anfang an nicht nur ein "Repository". Obwohl das Repository die Basisfunktion ist, hat es die Art und Weise, wie Entwickler zusammenarbeiten, wirklich revolutioniert. Im Oktober 2007 begannen einige Gründer, an diesem Projekt zu arbeiten. Interessanterweise, als wir später Gedenkposter herstellten, listeten wir die ersten 10 Commits auf - damals hatten sie überhaupt nicht damit gerechnet, dass dieses Projekt so wichtig werden würde. Anfang 2008 wurde GitHub offiziell veröffentlicht. Die ersten Benutzer kamen hauptsächlich aus der Ruby on Rails-Community, da das Gründerteam selbst aus diesem Entwicklerkreis in San Francisco stammte.
Anfangs war GitHub tatsächlich eine Code-Hosting-Plattform, aber bald wurde die bahnbrechende Funktion der "Pull Request" eingeführt. Tatsächlich war schon die Repository-Funktion damals sehr fortschrittlich: Entwickler konnten direkt im Webbrowser Code ansehen und die Dateigeschichte einsehen. Diese Erfahrung war 2008 revolutionär. Die einfache und effiziente Bedienung zog eine große Anzahl von Entwicklern an. Anschließend wurden weitere Funktionen wie das Issue-Tracking hinzugefügt, um die Zusammenarbeit noch reibungsloser zu gestalten.
Was GitHub heute besonders macht, ist, dass es die Grenzen zwischen verschiedenen Arten von Entwicklern verwischt. Ob Open-Source-Beitragende, kommerzielle Entwickler oder Start-ups oder Einzelprojekte - der Entwicklungsprozess ist eigentlich sehr ähnlich. Oftmals ist es derselbe Mensch, der in verschiedenen Phasen seines Lebens an Open-Source-Projekten, Hobbyprojekten, Start-up-Projekten und Berufsprojekten arbeitet. Wenn man sich die GitHub-Profilseiten von Entwicklern ansieht, wird man feststellen, dass dort verschiedene Arten von Projekten aufgeführt sind. Dies spiegelt die Vielfalt moderner Entwickler wider.
Frage: Wo haben Entwickler ihren Code vor GitHub gespeichert?
Dohmke: Diese Frage ist sehr interessant. Die ursprünglichste Methode war es, einfach Ordner auf dem Computer anzulegen, z. B. mit Namen wie V1, V2 oder mit einem Datum. Aber binnen drei Tagen war alles durcheinander - entweder vergisst man, die Version zu aktualisieren, oder man kann den benötigten Code nicht finden, wenn man eine Version zurücksetzen möchte. Ehrlich gesagt verwenden noch viele Anfänger heute noch diese primitive Methode.
Tatsächlich könnte man ein Buch über die Geschichte der Versionskontrolle schreiben. Das ursprünglich beliebteste Softwaretool zur Versionskontrolle von Code war CVS, später wurde es von Subversion (SVN) abgelöst. Damals speicherten die Leute ihren Code auf SourceForge (einer frühen Website zum Hosten von Open-Source-Software). Die Entstehung von Git (einem verteilten Versionskontrollsystem) ist der Linux-Kernel-Entwicklergruppe zu verdanken. Selbst Linus Torvalds, der Vater von Linux, war persönlich an der Entwicklung beteiligt. Damals gab es auch einen Wettbewerber namens Mercurial, aber am Ende hat Git gewonnen.
Interessanterweise war es 2008, als GitHub erstmals online ging, nicht sicher, ob Git zum Mainstream werden würde. Die ersten Benutzer waren hauptsächlich alte Benutzer von SourceForge und SVN. Bis heute helfen wir oft, alte SVN-Repositories (Abkürzung für Subversion, ein Versionskontrollsystem) auf GitHub zu übertragen.
Frage: Können Sie den Unterschied zwischen Git und GitHub in einfachen Worten erklären? Insbesondere, was die Innovationen von GitHub sind?
Dohmke: Wir können es so verstehen: Git ist wie ein intelligentes Notizbuch, das sich jede Änderung an Ihren Code-Dateien (die eigentlich nur Textdateien sind) merkt. Einfacher ausgedrückt, stellen Sie sich vor, wenn Sie einen Artikel schreiben, speichert Git automatisch jede Version, und Sie können jederzeit zurücksehen oder eine frühere Version wiederherstellen. Viele Office-Software (z. B. Google Docs) haben heute ähnliche Funktionen, aber vor der Entstehung von Git war dies eine bahnbrechende Idee.
Das Wichtigste an Git ist seine "dezentrale" Eigenschaft. Das bedeutet, dass jeder Entwickler auf seinem Computer eine vollständige Kopie des Code-Repositorys hat, einschließlich aller Änderungshistorie. Und GitHub ist wie ein "Code-Clup", der diese verteilten Kopien zusammenbringt. Sie können meine Änderungen "herunterladen", und ich kann meine Updates "hochladen". So können wir gemeinsam an Code arbeiten.
Der Name GitHub deutet bereits auf seine Position hin - es gibt diesen verteilten Code-Repositories ein Zuhause. Obwohl wir immer sagen, dass die Dezentralisierung gut ist, muss der Code doch an einem zuverlässigen Ort gespeichert werden. Deshalb haben wir GitHub als "Zuhause für Entwickler" gestaltet, damit die Leute hier zusammenarbeiten und kommunizieren können.
02 In Zukunft werden Programmierer wie Dirigenten sein und ein Team von KI-Agenten leiten
Frage: Wie alt sind Ihre Söhne? Haben Sie ihnen Programmieren beigebracht, oder haben sie es selbst gelernt?
Dohmke: Sie sind 13 und 10 Jahre alt. Der Weg, wie sie Programmieren gelernt haben, ist sehr interessant. Während der Pandemie der letzten Jahre habe ich sie ermutigt, mit Typing-Software zu üben. Jetzt können sie schneller tippen als ich. Später kamen sie mit grafischen Programmiertools wie MIT Scratch und Lego Mindstorms in Kontakt, mit denen man durch Ziehen und Ablegen von logischen Blöcken programmieren kann.
Mein ältester Sohn hat in der Schule Python gelernt, mein jüngerer Sohn hat es ganz von alleine gelernt. Das bringt mich an meine eigenen Erfahrungen beim Programmieren in den 90er Jahren des letzten Jahrhunderts zurück. Damals hatte ich nur Bücher und Zeitschriften, aber sie haben jetzt die gesamte Ressource des Internets. Selbst ohne KI suchen sie bei Problemen auf YouTube nach Tutorials, z. B. wie man mit Python und PyGame Spieleanimationen macht.
Interessanterweise haben sie auch die Lösung des Rubik's Würfels auf YouTube-Videos gelernt. Dieser Prozess des ständigen Ausprobierens ist eigentlich sehr ähnlich wie beim Lernen von Programmieren. Später war es mit der Hilfe von Copilot noch einfacher. Es kann Code-Details in Englisch, Deutsch und anderen Sprachen erklären. Diese lernende Methode, die Sprachbarrieren überwindet, macht die Programmierausbildung zugänglicher, insbesondere für Kinder in nicht englischsprachigen Ländern. Selbst Kinder im Alter von sieben oder acht Jahren, die sich für Programmieren interessieren, können einfach Copilot fragen, "wie man ein Snake-Spiel macht", und sie erhalten eine vollständige Anleitung vom Erstellen der Datei bis zum Ausführen und Debuggen.
Ich denke, dass Kinder tatsächlich Vorteile beim Lernen von Programmieren haben als Erwachsene, weil sie von Natur aus das Geist der ständigen Ausprobieren haben. Erwachsene verlieren schnell die Geduld, wenn sie auf Probleme stoßen, oder geben auf, indem sie sagen, dass sie keine Zeit haben. Aber Kinder werden unermüdlich Copilot oder anderen KI-Tools Fragen stellen. Sie werden den Code basierend auf der Rückmeldung der KI wiederholt ändern, bis das Programm erfolgreich läuft.
Frage: Wie groß ist das Maßstab der Codeerstellung auf der GitHub-Plattform?
Dohmke: Obwohl es keine genauen Zahlen gibt, können wir das riesige Code-Ökosystem aus mehreren Aspekten betrachten. Derzeit hat GitHub 150 Millionen registrierte Entwickler, und die Anzahl der jährlichen Pull Requests erreicht die Hundermillionen. Selbst wenn jeder Pull Request nur 10 Codezeilen enthält, würde die Gesamtzahl leicht die Milliarden überschreiten. Tatsächlich machen die meisten Arbeiten der Entwickler aus Änderungen oder Neugestaltungen an bestehendem Code, was die Codeaktivität auf der Plattform noch beeindruckender macht.
Betrachtet man die Beteiligung der KI, zeigen die Daten Anfang 2023, dass in den Dateien, in denen Copilot aktiviert ist, 46 % der Codezeilen von der KI automatisch generiert wurden. Mit der Einführung von KI-Agenten können Entwickler jetzt sogar ihre Anforderungen in natürlicher Sprache beschreiben, und die KI kann den gesamten Code schreiben. Dies markiert eine grundlegende Veränderung in der Art des Programmierens - Entwickler müssen nicht mehr direkt Code schreiben, sondern stattdessen präzise Anforderungsbeschreibungen verfassen. Man kann sagen, dass natürliche Sprache sich zu einer neuen Art von universellen Programmiersprache entwickelt, und die Entwickler werden zu präzisen Beschreibern von Anforderungen und Architekten von Lösungen.
Frage: GitHub ist der Marktführer, aber wie viele andere Plattformen beachten Sie?
Dohmke: Obwohl es tatsächlich Wettbewerber wie GitLab gibt, ist GitHub aufgrund seiner riesigen Entwicklergemeinschaft kurzfristig schwer zu erschüttern.
Interessanterweise, wie ich kürzlich in einem Fall gesehen habe - einige Flugkontrollsysteme in den USA laufen immer noch unter Windows 95, und es gibt spezielle Entwickler, die diese antiken Systeme warten müssen. Dies bringt uns in Erinnerung, dass auch wenn ein technisches Produkt die Marktführerschaft hat, es immer die Gefahr bewusst sein muss.
Als wichtiger Bestandteil des Microsoft-Ökosystems haben wir immer die Angst des Innovators. Diese Wachsamkeit lässt uns die Branchenveränderungen immer im Auge behalten, ob es die Entwicklung von DevOps oder die Revolution in der Art des Programmierens durch generative KI ist. Die technologischen Ressourcen, die wir haben, sind beeindruckend: Von den beiden führenden IDEs Visual Studio und VSCode bis hin zum .NET-Technologie-Stack und npm, der Kerninfrastruktur der JavaScript-Ökosystem. Je mehr wir haben, desto mehr müssen wir uns wie im Buch "The Innovator's Dilemma" gewarnt werden, vor den Blindstellen, die vom Erfolg verursacht werden.
Was ich am besten an GitHub finde, ist, dass jeder im Inneren von GitHub GitHub nutzt. Von den Ingenieuren bis hin zum Personalwesen und sogar der Rechtsabteilung - alle Arbeitsabläufe werden auf GitHub durchgeführt. Unsere Nutzungsbedingungen selbst sind in einem Repository auf GitHub gehostet, und jede Änderung erfolgt über eine Pull Request. Für mich ist es der ideale Arbeitszustand, wenn ich Entwicklern Entwicklungstools bauen kann. Wir werden die Innovation von GitHub weiter vorantreiben.
Frage: Was werden Sie als nächstes tun?
Dohmke: Offensichtlich geht es um KI-Agenten. Die aktuelle Entwicklungssituation der Programmier-KI-Agenten ist wirklich erwartungswert, aber auch voller Herausforderungen.
Nehmen wir das von der Branche anerkannte SWE-bench-Benchmark-Test als Beispiel. Das momentan beste Modell erreicht nur eine Genauigkeit von etwa 60 %. Selbst wenn es in Zukunft auf 70 % gesteigert wird, ist diese Zahl immer noch begrenzt - schließlich umfasst der Testsatz nur 2000 Problemfälle aus 12 Python-Projekten. Noch bemerkenswerter ist, dass die Genauigkeit normalerweise auf etwa 30 % sinkt, wenn man auf andere Programmiersprachen erweitert.
Obwohl diese KI-Agenten bereits ein enormes Potenzial gezeigt haben und Entwicklern bei grundlegenden Aufgaben wie der Aufgabenverteilung helfen können, ist es noch ein langer Weg, bis wir unser ultimatives Ziel erreichen - dass KI-Agenten die alltäglichen Entwicklungsarbeiten wie das Schreiben von Testfällen, die Generierung von Dokumentation und die Behebung von Sicherheitslücken vollständig übernehmen können (die eigentliche innovative Forschung und Entwicklung muss immer noch von Menschen geleitet werden).
Wir überlegen auch viele andere Anwendungen von KI-Agenten, wie die von uns erwähnten Code-Review-Agenten und die automatischen Reparatur-Agenten. Auf der Microsoft Build-Konferenz haben wir den SIE-Agenten veröffentlicht, der Ihren Server überwachen kann und basierend auf den Überwachungsergebnissen handeln kann, egal ob es um die Anhäufung von Fehlern oder die Überlastung des Servers geht.
Stellen wir uns eine zukünftige Szene vor: Entwickler werden nicht mehr alleine arbeiten, sondern wie der Dirigent eines Orchesters, der ein digitales Team aus verschiedenen KI-Agenten leitet. Diese Veränderung bringt nicht nur eine Effizienzsteigerung, sondern auch eine grundlegende Veränderung in der Art des Programmierens. Entwickler müssen