3.4 Visual Studio und VS Code
Die nächsten beiden Abschnitte beschäftigen sich mit zwei wichtigen Entwicklungsumgebungen (Integrated Development Environment, kurz einfach IDE) von Microsoft: Visual Studio und VS Code. Ersteres kann getrost als Urgestein in der IDE-Geschichte bezeichnet werden. Bereits 1997 kam die erste Version für Windows auf den Markt. Die proprietäre Software war bis 2014 nur gegen Bezahlung zu haben, seitdem gibt es eine Community Edition, die nach einer Registrierung bei Microsoft kostenlos verwendet werden kann. Die IDE ist sehr beliebt, weil sie eine kontextbezogene Hilfe und eine Syntaxprüfung für viele unterstützte Programmiersprachen bietet. Das Programm verlangt einiges an Ressourcen von Ihrem Computer, weshalb viele Entwicklerinnen und Entwickler nach schlankeren Alternativen Ausschau hielten.
Seit 2015 entwickelte Microsoft den Editor VS Code auf der Plattform Electron, die ursprünglich als Basis für den freien Editor Atom erstellt wurde. Electron stellt dabei eine Laufzeit-Umgebung für Web-Applikationen zur Verfügung, die Desktop-Anwendungen ohne die Einschränkungen der Browser-Sandbox ermöglicht. Der Kern von VS Code ist schlank und kann mit unzähligen Extensions erweitert werden. In Umfragen auf StackOverflow liegt VS Code seit Jahren an der Spitze der beliebten IDEs von Entwicklern.
Fehlende Python-Module in VS Code
Die Python-Anwendung im folgenden Abschnitt war schon ein paar Jahre alt, als wir uns wieder damit beschäftigen mussten. Beim Aufruf des Debuggers trat eine Exception auf, da ein eingebundenes Modul nicht gefunden werden konnte. Leider wurde die Anwendung damals ohne ein Python Virtual Environment und auch ohne eine requirements.txt erstellt.
Die KI-Unterstützung in VS Code auf Basis von GitHub Copilot und der entsprechenden Extension konnten uns aber auch hier etwas Arbeit abnehmen. Durch die Exception wird die Ausführung angehalten und der Cursor an der entsprechenden Stelle im Code positioniert. Die Sprachunterstützung für Python in VS Code (abermals eine Extension) kennzeichnet bereits den nicht vorhandenen Import. Mit Copilot können wir nun auf Knopfdruck eine Lösung vorschlagen lassen (/fix) und das entsprechende Kommando direkt in ein Konsole-Fenster einfügen. Anschließend reicht das Drücken der Enter-Taste, um das Modul zu installieren.
Abbildung 3.5 GitHub Copilot kann den Aufruf für die Installation des fehlenden Python-Moduls gleich in ein Terminal einfügen.
Leider kann Copilot in VS Code noch nicht auf den Text von Exceptions eingehen, die zur Laufzeit auftreten. (Wie das in Visual Studio möglich ist, werden wir im folgenden Abschnitt zeigen.) Wir vermuten aber, dass diese Funktion nicht allzu lange auf sich warten lassen wird.
Visual Studio Exception Debugging
Für Benutzer von Microsofts Entwicklungsumgebung Visual Studio (nicht das freie Visual Studio Code), die zudem auch Kunden von GitHub Copilot sind, gibt es seit Kurzem eine sehr komfortable KI-Erweiterung: Wenn Sie Ihre Anwendung im Debugging-Modus starten und ein unerwarteter Fehler (eine Exception) auftritt, dann bietet Visual Studio auf Knopfdruck die Möglichkeit, das Problem von Copilot untersuchen zu lassen.
Unsere Experimente mit dieser Funktion hinterließen einen sehr positiven Eindruck. Im Prompt wird offensichtlich nicht nur der Text der Exception gesendet, sondern auch der umliegende Code. Nur dadurch konnten wir uns erklären, dass die (absichtlich herbeigeführte) System.ArgumentException so exakt erklärt werden konnte. Der C#-Aufruf todoItems.GetRange(0, 3) extrahiert die ersten drei Elemente aus der Liste todoItems. Bei unserem Aufruf war die Liste aber leer, weshalb die Exception entstand.
Abbildung 3.6 Die Unterstützung von GitHub Copilot beim Debugging in Visual Studio
GitHub Copilot konnte das Problem kurz und mit den korrekten Variablen beschreiben:
This error happens because the GetRange method is beeing called on a list that has fewer than 3 elements, causing an ArgumentException to be thrown.
This might be happening because the todoItems list is empty or has fewer than 3 elements …
Dass wir auch noch einen fertigen Fix, also einen Code-Vorschlag, bekommen, der ohne Änderungen funktioniert, war das Tüpfelchen auf dem i. Microsoft zeigt damit, wie komfortabel das Entwickeln mit KI-Unterstützung sein kann. Wie gesagt, freuen wir uns schon auf die Umsetzung für VS Code.