Ich gegen das Web

Der Blog von jemanden der gegen das Web kämpft.

Über diesen Blog

Sebastian schreibt hier manchmal über seinen Kampf gegen das Internet. Wer da wohl gewinnt?

Zahl des Tages

19

Navigation

GitHub Copilot - eine Revolution der Softwareentwicklung

Was ist Copilot und wie wird es die Zukunft der Softwareenteicklung verändern?

github-copilot-eine-revolution-der-softwareentwicklung

GitHub hat vor Kurzem Copilot angekündigt. Und das kann unter Umständen nicht weniger sein, als eine echte Revolution im Bereich der Programmierung/Softwareentwicklung. Aber warum? Funktioniert das? Und ist das gut? Diese fragen möchte ich mit diesem Beitrag beleuchten.

Was kann GitHub Copilot

Copilot basiert auf einem neuronalen Netzwerk, welches sich Programmcode anschaut und auf die Interaktion der Entwickler:innen reagiert. Wenn du also eine React.js Applikation schreibst, schaut sich Copilot deinen Code an. Wenn du dann an einer Stelle bist und bspw. einen Eventhandler an ein Objekt binden möchtest, schläft dir Copilot fertige Lösungen vor. Und ja, es sind fertige neue Lösungen und keine Code-Snippets. Copilot soll dabei die Struktur deines Codes analysieren und bei der Entwicklung eigener Lösungen adaptieren.

Bild Titel

Das ganze klingt spannend, kann es doch den Entwicklungsprozess deutlich beschleunigen, indem nicht nur - wie bisher - fertige Templates genutzt werden, um wiederkehrende Aufgaben schneller zu lösen, sondern anhand des konkreten Problems artificial Lösungen entstehen.

Die Copilot Landingpage von GitHub zeigt dir genauer, was damit gemeint ist. Die Funktionsweise wird dort wie folgt beschrieben: OpenAI Codex was trained on publicly available source code and natural language, so it understands both programming and human languages. The GitHub Copilot editor extension sends your comments and code to the GitHub Copilot service, which then uses OpenAI Codex to synthesize and suggest individual lines and whole functions

Copilot soll in vielen IDE lauffähig sein. Für VSCode gibt es (natürlich) bereits das notwendige Plugin.

Warum Copilot

Das ist recht einfach erklärt. Es geht immer darum auf Kosten zu sparen und die Qualität von Software zu verbessern. Bei beiden kann dir Copilot helfen.

Kosten sparen

Durch eine schnellere Entwicklung von Software kann der Faktor Zeit reduziert werden. Zeit ist das, was eine Anwendung so teuer macht. Entwickler:innen benötigen einfach Zeit, um Lösungen zu erdenken, umzusetzen und zu testen. Hier kann Copilot natürlich helfen, indem bereits in der Theorie getestete Lösungen als Codefragmente angeboten werden. Und generell das Anbieten dieser Fragmente kann schon eine deutliche Zeitersparnis bringen, wenn du als Entwickler:in nur die Absicht in einen Kommentar schreibst. Denn Copilot soll so Kontextsensitiv sein, dass es Kommentare auswertet und umsetzt. Klingt spannend!

Im besten Fall kommst du mit Copilot also deutlich schneller an dein Ziel, also die fertige Anwendung.

Qualität erhöhen

Durch den Einsatz von AI generell, bzw. Copilot im speziellen Fall, kann auch die Qualität des Codes verbessert werden. So können potente Lösungen vorgeschlagen werden, die zugleich erprobt sind (beides noch Zukunftsmusik bei Copilot). GitHub selber schreibt dazu:

No. GitHub Copilot tries to understand your intent and to generate the best code it can, but the code it suggests may not always work, or even make sense. While we are working hard to make GitHub Copilot better, code suggested by GitHub Copilot should be carefully tested, reviewed, and vetted, like any other code. As the developer, you are always in charge.

Funktioniert das?

Jaein. Wie eben schon zitiert, ist Copilot noch in der Entwicklung. Für viele Szenarien wird es auch funktionieren. Aber Copilot kann (noch) nicht den Gesamtkontext der Anwendung erfassen oder weiß, was du dir eigentlich vorgestellt hast. Ein Produkt-Outline auszuwerten ist (aktuell) nicht möglich.

Und ist das gut?

Wenn irgendwann Copilot so leistungsfähig ist, dass die Beiträge bzw. Fragmente potent sind und im Sinne der Anwendung, kann es viele Schritte in der Softwareentwicklung ersetzen bzw. durchführen. D.h. dafür wird keine menschliche Kraft mehr notwendig sein. Nun kann dieses Bild natürlich bis zum Ende durchgedacht werden. Und da könnte dann stehen, dass es einfach keine Entwickler:innen mehr braucht.

Die Ausgangsbedingungen sind ideal - besonders für Copilot. GitHub gehört zu Microsoft. Und es gibt viele öffentliche Projekte auf GitHub, die ausgewertet werden können und so das neuronale Netz verbessern. Weiterhin gibt es Plattformen wie Stackoverflow, bei der die Potenz der Lösungen hervorragend ist. Diese Datenquellen zusammen erzeugen eine unglaubliche Basis an Daten, die die Qualität verbessern können. Alles eine Frage der Zeit.

Ist Copilot das Ende der menschlichen Softwareentwickler:rinnen?

Aber bis es wirklich so weit ist, wird noch viel Zeit vergehen. Und auch wenn Copilot in der Lage sein wird gewisse Anwendungen zu entwickeln, bedarf es immer noch Architekten:innen und Big-Data-Analysten:innen, die für mehr Input bei Tools wie Copilot sorgen.

Dann ist da noch das Problem mit der Softwareentwicklung als Service. Je besser Copilot wird, umso eher ist davon auszugehen, dass irgendwann das ganze auch Geld kostet. Nun müssen Firmen abwägen, ob sich für jene oder diese Arbeit der Open AI-Service (das ist die Grundlage von Copilot) lohnt oder es besser ist, inhouse Kapazitäten vorzuhalten.

Auch wird immer noch eine Qualitätssicherung notwendig sein. Das Entwickeln der Anforderungen an die Anwendung wird Copilot absehbar nicht übernehmen können. Zur Erstellung von Userstories und Cases, die dann entsprechend in Bedarfe umgewandelt werden, mit denen Copilot arbeiten kann, wird es noch lange menschliche Arbeitskräfte benötigen.

Zukunft von Copilot

Mit Copilot wird es definitiv weitergehen. Die Qualität wird immer weiter verbessert. Microsoft wird selber definitiv Nutzer:in dieses Service werden. Wann es aber in der breiten Masse ankommt, bleibt abzuwarten. Es ist auf jeden Fall sehr spannend. Was denkst du darüber? Ist Copilot der Jobkiller? Oder wird es deine Tätigkeiten erleichtern/verbessern?

Basic HTML Structure

basic-html-structure

Because I already searched several times for a real basic HTML5-Structure, here it comes:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title></title>        
        <link rel="stylesheet" type="text/css" href="assets/css/style.css">    
    </head>
    <body>

    </body>
</html>

Some more examples

In the following there a few more examples which I use from time to time.

Kostenfreie Stock Grafiken für den professionellen Einsatz

Übersicht über kostenfreie Stockseiten für Grafiken und Videos.

kostenfreie-stock-grafiken-für-den-professionellen-einsatz

Wer im Web unterwegs ist und sich um die Gestaltung von Portalen, Blogs oder sonstigen Seiten kümmert, wird das Problem kennen: Zu diesen einem Thema gibt es kein vernünftiges Bild der Kundin. Was tun? Genau: Stocks nutzen.

Es gibt viele tolle Seiten mit professionellen Grafiken und Fotografien. Und da kosten die Medien natürlich – und absolut zu Recht – Geld. Es gibt aber auch einige Alternativen. In diesem Blog möchte ich mal eine meiner Lieblingsseiten vorstellen, auf der du kostenfreies Stockmaterial erhalten kannst.