6 Punkte von eggplantiny 14 일 전 | 11 Kommentare | Auf WhatsApp teilen

Hallo, ich bin Frontend-Entwickler mit 8 Jahren Berufserfahrung.

Ich habe meine Erfahrung aufgeschrieben, wie ich mit Hilfe von KI einen DSL-Compiler entworfen und es sogar geschafft habe, einen Artikel auf arXiv zu veröffentlichen.

  • Ausgangspunkt war die Intuition, die ich beim Entwickeln mehrerer SaaS-Produkte hatte: „In jeder Domäne wiederholt sich dieselbe Struktur.“
  • Ich habe KI nicht als Coding-Assistenten genutzt, sondern als Werkzeug, um mir die Denkweise von Fachexperten in den jeweiligen Bereichen zu leihen.
  • Weil die Kosten des Scheiterns strukturell gesunken sind, konnte ich das Projekt selbst dann weiter vorantreiben, nachdem ich die Architektur viermal komplett umgeworfen hatte.
  • Gleichzeitig habe ich auch die Bedeutung der übrigen 20 % gespürt, die KI nicht ausfüllen kann — die Intuition: „Du stellst gerade die falsche Frage.“

Dies ist ein ehrlicher Erfahrungsbericht darüber, dass ich zugleich die Möglichkeiten und die Grenzen des KI-Einsatzes erlebt habe.

11 Kommentare

 
onetoday 14 일 전

Ich weiß zwar nicht genau, was eine formale Sprache ist, aber state und computed wirken wie Variablen und action wie eine Funktion – worin besteht also der Unterschied? Beim Lesen hatte ich erst den Eindruck, es gehe um ein Zustandsdiagramm, aber dann verstehe ich nicht, was das mit der Aussage zu tun hat, dass sich die Domäne wiederholt. Die im Text vorkommenden Begriffe sind zwar keine unbekannten Wörter für mich, aber trotzdem liest er sich nicht besonders gut.

 
eggplantiny 14 일 전

Nehmen wir zum Beispiel an, wir erstellen ein Registrierungsformular.

Angenommen, im Registrierungsformular erfassen wir vier Dinge: Name, Geschlecht, Alter und ob jemand den Militärdienst abgeleistet hat.

Dann kommt noch eine zusätzliche Bedingung hinzu:

"Wenn das Geschlecht männlich ist, wird eine Select-Box angezeigt und es wird gefragt, ob der Militärdienst abgeleistet wurde."

Und wenn es außerdem einen Absende-Button gibt, könnte man das als das bezeichnen, was wir üblicherweise ein Domain-Modell für die Registrierung nennen.

Dann sind in diesem Fall Name, Geschlecht, Alter und Militärdienst diese vier Dinge der state der Domain,

und die Sichtbarkeit der Select-Box, die nach dem Militärdienst fragt, ist ein vom Geschlecht abgeleiteter computed-Wert.

Und dem Registrierungs-Button wird eine action zugeordnet.

Wahrscheinlich bin ich einfach nicht besonders gut im Schreiben, deshalb habe ich es wohl nicht so leserlich formuliert.

Bitte verstehen Sie das Konzept im Grunde als ähnlich zu dem, was ich oben erklärt habe.

 
onetoday 13 일 전

Ich verstehe es zwar nicht genau, aber ich glaube, ich weiß ungefähr, wie es sich anfühlt.

Vielen Dank.

 
ifmkl 13 일 전

Ich habe den Beitrag mit großem Interesse gelesen, ebenso das, was Sie im Blog geschrieben haben. Ich weiß nicht, ob der Vergleich ganz passend ist, aber ich denke dabei daran, warum das allererste Tutorial in vielen Programmiersprachen Hello World! ist und warum man früher beim Lernen der Webentwicklung oft ein Forum oder einen Online-Shop gebaut hat — am Ende läuft das doch auf das hinaus, wovon Sie gesprochen haben. Früher dachte ich nämlich: Wenn man die Technik beherrscht, mit der sich ein Forum und ein Online-Shop bauen lassen, kann man den Großteil des Webs umsetzen. Und letztlich besteht Programmierung im Kern doch nur aus Input und Output.

 
eggplantiny 13 일 전

Die Analogie scheint passend zu sein. Mein Projekt besteht de facto ebenfalls nur aus zwei Dingen: der menschlichen Intent und einem Snapshot.
Letztlich dachte ich, dass die Richtung, in die sich mein Projekt entwickeln sollte, darin besteht, zu berechnen, wie die menschliche Absicht (z. B. Tastatureingaben, Mausklicks) zu verstehen ist und welche Bedeutung sie erhalten soll.

 
snisper 14 일 전

Kurz gesagt: Habt ihr also eine Mini-Sprache entwickelt, die ein State-Diagramm zeichnet?

 
eggplantiny 14 일 전

Nein, das State Diagram, das ich Ihnen gezeigt habe, ist nur eine der Methoden, um die Zustandsübergänge innerhalb von Manifesto zu visualisieren.

Ich habe eine deterministische State Machine als Framework gebaut.

Die Berechnungen innerhalb von Manifesto Core sind so konzipiert, dass bei gleichem Zustand und gleichem Befehl immer nur dasselbe Ergebnis berechnet wird.

 
snisper 14 일 전

Ich verstehe, dass Sie eine DSL erstellt haben, aber ich weiß nicht so recht, was mit einer deterministischen Zustandsmaschine gemeint ist. Ich frage mich auch, ob es überhaupt nichtdeterministische Zustandsmaschinen gibt ... Wie auch immer, ich habe den Beitrag gern gelesen. Ich hoffe, Sie entwickeln das weiter und pflegen es gut.

 
eggplantiny 14 일 전

Ah, Ihr Hinweis ist richtig. Die Zustandsmaschine selbst ist deterministisch. Was ich im Manifesto eingeführt habe, basiert auf Nicht-Turing-Vollständigkeit, und innerhalb der DSL gibt es keine Schleifen. Dadurch ist es möglich, schon vor der Ausführung des Programms zu berechnen, wie das Programm arbeiten wird, und zu erklären, warum ein bestimmtes Ergebnis herausgekommen ist.

Vielen Dank für den Hinweis!

 
toida 14 일 전

Mit Interesse gelesen. Vieles darin ist sehr nachvollziehbar. Es ist aufregend und zugleich beängstigend.

 
eggplantiny 14 일 전

Vielen Dank, dass Sie den Beitrag mit Interesse gelesen haben.

In letzter Zeit denke ich viel darüber nach, wie wir in einer sich schnell verändernden Zeit leben sollten.

Das beschäftigt mich derzeit sehr.