Serie: Vibe Coding - Teil 1: Motivation

  Ralf Hersel   Lesezeit: 4 Minuten Auf Mastodon ansehen

In dieser Serie versuche ich, eine alte Anwendung mittels Vibe-Coding in die Neuzeit zu retten. Das erfolgt im Rahmen einer kritischen Einordnung.

serie: vibe coding - teil 1: motivation

Zu Beginn gilt es, ein paar Fragen zu beantworten:

  1. Was ist Vibe-Coding?
    Vibe-Coding bezeichnet eine Art der Softwareentwicklung, bei der nahezu ausschließlich der Prompt eines großen Sprachmodells (LLM) (z. B. GPTs wie Claude oder ChatGPT) bedient wird, um den für die Software erforderlichen Quellcode zu generieren. Vibe-Coding arbeitet mit den Mitteln des Prompt-Engineerings. Anders als die qualifizierte Softwareentwicklung, die Überprüfungen und Tests des Quellcodes und des Produkts auf Fehlerfreiheit durch Fachpersonal einschließt, soll Vibe-Coding keine Vorkenntnisse oder Ausbildung erfordern. (Aus Wikipedia.)

  2. Kritische Einordnung
    Ich stehe der Verwendung von KI grundsätzlich kritisch gegenüber. Insbesondere beim Vibe-Coding besteht die Gefahr, unwartbaren und sicherheitskritischen Code zu generieren. Vibe-Coding wird in der Regel von Personen angewendet, die keine oder unzureichende Ahnung von Softwareentwicklung haben.

  3. Warum dann diese Artikelserie?
    Dafür gibt es drei Gründe: Ich möchte die freie Software UniTree migrieren (dazu später mehr), ich wollte selbst wissen, wie weit man mit Vibe-Coding kommt, und ich möchte an einem praktischen Beispiel die Gefahren aufzeigen.

Inhaltsverzeichnis

Teil 1: Motivation (das ist dieser Artikel)
Teil 2: Treenotes
Teil 3: UniTree

Motivation

Im Jahr 2009 habe ich eine Software namens UniTree geschrieben. Im Titelbild seht ihr einen Screenshot davon.

UniTree ist ein universelles Werkzeug zur strukturierten Ablage von Textinformationen. Es eignet sich für vielfältige Einsatzzwecke wie z. B. Ideensammlung, Notizblock, kleinere Datensammlungen, Verwaltung von Projekten, Hilfesammlung usw. UniTree läuft auf allen Plattformen, die Python 2.6 und GTK unterstützen.

Zu den Funktionen von UniTree gehören:

  • Strukturierter Baum
  • Baum mit Verweisen und Rück-Verweisen
  • Texteditor mit Einrück- und Aufzählungs-Automatik
  • Zusatzfelder (Langtext, Kurztext, Datum, Boolean, Liste, Links, Bildern)
  • Baumsuche und Volltext-Suche
  • Journal
  • Automatische Schlagwort-Verlinkung
  • Wortergänzung und Textbausteine auf Tastendruck
  • Liste der zuletzt bearbeiteten Themen
  • Autosave
  • Import und Export im XML-Format (mit XSL-Formatierung)

Die Migration der 3400 Zeilen Python2-Code (mit Gtk2) zu Python3 (mit Gtk4 und Libadwaita) ist mir nie gelungen.

Mir ist die Migration wichtig, weil ich damals mit UniTree ein paar gute Ideen umgesetzt habe. Auf den ersten Blick erscheint die Anwendung als Note-taking-App wie z. B. ZIM oder Joplin. Ich sehe UniTree eher als hierarchische Datenbank, was man bei einem näheren Blick auf den Baum sieht. Dort wechseln sich in der Hierarchie zwei Knotentypen ab. Ich habe sie damals Kategorien (schwarz) und Instanzen (blau) genannt. Der Baum beginnt mit einem Kategorieeintrag (Cocktail). Darunter befinden sich zwingend Instanzeinträge (Black Russian, Bloody Mary, usw.). Darunter muss wieder zwingend ein Kategorieeintrag folgen.

Für jede Kategorie werden Attribute (Datenbankfelder) für die darunterliegenden Instanzen konfiguriert. Beispiel: Die Kategorie "Cocktail" definiert die Felder: Beschreibung, Bilddatei und Link zur Bilddatei. Bei der Instanz "Bloody Mary" stehen genau diese Felder zur Verfügung und können ausgefüllt werden.

Neben Kategorien und Instanzen gibt es noch Links (grün) und Rück-Links (rot). Die Links referenzieren Instanzen, die sich anderswo im Baum befinden. Rück-Links sind Links, die von anderer Stelle im Baum auf diese Instanz verweisen. Mit dieser Architektur lässt sich fast alles abbilden, was einem so einfällt. UniTree bietet eine mächtige Suche, über die sich die erwähnte Cocktail-Datenbank abfragen lässt. "Welche Cocktails kann ich mit meinem Bestand mixen?", lassen sich damit beantworten.

Da ich keine andere Anwendung kenne, die dieses Konzept implementiert, lasse ich mich auf die Wiederbelebung von UniTree ein. 

Geht das mit Vibe-Coding?

Hinter dieser Frage verstecken sich zwei Fragen. Kann ich die alte Anwendung migrieren? Kann ich die Idee der alten Anwendung mittels Vibe-Coding neu erstellen? Bevor ich mit dieser Artikelserie begann, habe ich diese Fragen einer KI gestellt und sie mit dem alten Material gefüttert. Die Antwort war zurückhaltend und eher skeptisch. Sie verwies darauf, dass sich in fast 20 Jahren bei Python und Gtk viel verändert hat. Falls ich eine gute Spezifikation zur Hand hätte, könnte es dennoch gelingen.

Ich stelle fest:

  • Die Migration auf Basis eines uralten Codes ist eher schwierig.
  • Die Neuerstellung aufgrund einer guten Spezifikation ist zielführender.

Das erinnert mich an ein Berufsfeld, in dem ich 10 Jahre lang tätig war: CASE - Computer Aided Software Engineering. Auch damals war eine perfekte Spezifikation, eine Voraussetzung für guten Code. Deshalb werde ich im zweiten Teil dieser Serie versuchen, UniTree auf einer Spezifikationsbasis zu bauen, bzw. zu vibe coden.

Warum ist das im Kontext von GNU/Linux.ch relevant?

Es gibt unzählige freie Software-Projekte, die neue Konzepte und gute Ideen verfolgen, jedoch aufgrund von Zeitmangel, Unfähigkeit (das meine ich nicht negativ) oder Prioritäten nicht hinreichend gepflegt und weiterentwickelt werden. Falls KI-basierte Unterstützung einen Beitrag leisten kann, um Open-Source-Projekte am Leben zu erhalten, ordne ich das im Moment vorsichtig positiv ein.

Titelbild: UniTree Screenshot

Quellen:

https://de.wikipedia.org/wiki/Vibe-Coding

https://wiki.ubuntuusers.de/Archiv/UniTree/

https://launchpad.net/unitree

https://www.rum3ber.ch/index.php/projekte/unitree

https://launchpad.net/~ralf.hersel/+archive/ubuntu/rhersel-ppa/+sourcefiles/unitree/0.89.2-0ubuntu1/unitree_0.89.2.orig.tar.gz

https://zim-wiki.org/

https://joplinapp.org/de/

https://de.wikipedia.org/wiki/Computer-aided_software_engineering

Tags

Vibe-Coding, vibe, Vibe Code, Unitree, KI

Es wurden noch keine Kommentare verfasst, sei der erste!