Der Bereich, in dem ich arbeite, ist zwar nicht ganz so extrem, aber ich forsche und entwickle im AI-Bereich.
Neben den allgemein viel genutzten Frameworks kommt es auch vor, dass die Zielumgebung, in der das Modell tatsächlich deployt wird, von der Umgebung abweicht, in der es trainiert wurde.
Manche Operationen werden nicht unterstützt, sodass man plattformspezifische Custom-Operationen erstellen muss. In solchen Fällen kann man oft nicht direkt in der Entwicklungsumgebung testen.
Manchmal modelliert man das Modell auch selbst. Dafür kann man zwar mit bestimmten Daten Testcode schreiben, aber je nach Datensatz ändern sich die Werte probabilistisch, und Phänomene wie explodierende Werte zu bestimmten Zeitpunkten lassen sich mit Testcode nur schwer abdecken.
Ich vermute, es gibt wohl einige Umgebungen, in denen Tests noch schwieriger sind als bei mir.
Der Ansatz von SQLite ist wirklich beeindruckend. Eine Testsuite, die 590-mal so umfangreich ist wie der Code selbst, nicht öffentlich zu machen, bedeutet letztlich, dass „der wahre Wert von Software in der Verhaltensspezifikation liegt“.
Wenn man heutzutage tatsächlich mit AI-Coding-Tools Projekte baut, kann man mit dem README eines bestehenden Projekts, der API-Dokumentation und dem Testcode die Kernfunktionen erstaunlich schnell nachbauen. Das ist etwas, das ich beim Betrieb von sieben Projekten selbst gespürt habe: Paradoxerweise lassen sich gerade Projekte mit guten Tests auch leichter kopieren.
Allerdings gibt es im Fall Cloudflare vs. Vercel einen Punkt, der übersehen wurde: „Kopieren“ und „Betreiben“ sind völlig unterschiedliche Dinge. Um die Edge Cases von Next.js, das Plugin-Ökosystem und sogar die Abhängigkeit von der Community nachzubilden, reicht Testcode allein nicht aus. Letztlich ist der Burggraben wohl eher die Kombination aus Testcode, Community und Betriebs-Know-how.
Bei diesem Projekt dürfte die GC kaum in einem problematischen Ausmaß zum Thema werden. Ich denke, dass bei „den meisten Projekten in letzter Zeit“ die Wahl einer Programmiersprache in vielen Fällen eher eine Frage des Geschmacks ist als eine, die tatsächlich auf den Stärken oder Grenzen einer bestimmten Sprache beruht. Wenn man mich dennoch fragt, worin Rust als Allzweck-Programmiersprache gegenüber Go einen komparativen Vorteil hat, würde ich wohl antworten, dass Rust ein höheres Abstraktionsniveau bietet und viele Fehler bereits zur Compile-Zeit erkennen kann. Natürlich hat auch Go gegenüber Rust Vorteile, etwa einfache asynchrone Programmierung, schnelle Compile-Zeiten und eine knappe Syntax.
Bei Rust werden viele Fehler schon beim Kompilieren erkannt, sodass sich ein fehlgeschlagener Build eher so anfühlt, als würde er der AI helfen, auf den richtigen Weg zu kommen.
Nun ja, das ist zwar nur eine Vermutung, aber ich denke, es liegt daran, dass die Einstiegshürde für Rust verschwunden ist.
Die größte Schwierigkeit ist, dass man etwas programmiert und die Kompilierung dann ständig fehlschlägt – aber das übernimmt jetzt die KI.
DIY, Maker-Bewegung, Indie, Punk und Open Source sind alles Gegenbewegungen zu Industrialisierung, Kapitalismus und Konsumismus – und dann soll ausgerechnet die Akzeptanz des Konsumismus ihre Grenzen überwinden.
Ich stimme zu, dass Vibe Coding zum Konsum-Frame passt. Ich denke, es ist die Coding-Version von „Temu-kkang“ und „Ali-kkang“, die zuletzt im Trend waren (https://www.asiae.co.kr/article/2024053117460950053).
Wenn man aber sagt, dass der Konsum-Frame ein Weg sei, die Fehler der Maker-Bewegung nicht zu wiederholen, kann ich dem in vielerlei Hinsicht nicht zustimmen – ähnlich wie in den Kommentaren auf HN.
Vibe Coding setzt die historische Entwicklung der Citizen Developer fort.
Ich denke, Vibe Coding entwickelt sich nun dahin, Coding so einfach, schnell und unverzichtbar wie Elektrizität zu machen.
Bereits viele geniale Programmierer in Unternehmen schreiben keine einzige Zeile Code mehr und setzen das Coding mit Prompts und Agenten fort.
Es gibt zwar Menschen, die das herunterspielen wollen, aber ich denke, es ist schwer zu bestreiten, dass Andrej Karpathys Vibe Coding einen Meilenstein in der Computergeschichte markiert.
Gute Frage. Tatsächlich entsprach in unserem Experiment die „hybride“ Bedingung genau dieser Richtung — also eine Konfiguration, bei der zu einem aufbereiteten Summary zusätzlich rohe Erfahrungslogs bereitgestellt wurden.
Im Ergebnis schnitt Hybrid mit 4,95/5,0 am besten ab. Wenn man nur das Summary gibt, sind es 2,65, aber wenn man dazu Prozessaufzeichnungen wie „fehlgeschlagen“ oder „Ursache unbekannt“ ergänzt, werden die Schwächen des Summarys eher ausgeglichen.
Daher lautet das Fazit: „Nicht das Summary an sich ist schlecht, sondern es muss zusammen mit Prozess und Unsicherheit festgehalten werden.“
Allerdings ist N=1, daher sind Anschlussstudien nötig, um zu prüfen, ob sich das allgemein für verschiedene Nutzergruppen einsetzen lässt.
Würde es dann einen Unterschied machen, wenn wir das so aufbauen, dass ein synthetisches Gedächtnis den Prozess, die Misserfolge und die Erfolge solcher Aufgaben enthält?
Stimmt. Ich hatte anfangs auch erwartet, dass synthetischer Speicher zumindest besser als die Baseline sein würde, aber die Ergebnisse haben mich überrascht.
Bei der Analyse zeigte sich, dass der Schlüssel die „Bewahrung von Unsicherheit“ war. In den rohen Logs bleiben Spuren wie „Das habe ich ausprobiert, hat aber nicht funktioniert“ oder „Ursache unbekannt“ erhalten, sodass der Agent auf etwas, das er nicht weiß, auch mit „Ich weiß es nicht“ antwortet. In der Zusammenfassung wird dieser Kontext jedoch vollständig gelöscht, und am Ende gibt er falsche Antworten sogar mit Selbstsicherheit.
Das war etwas, was ich empirisch schon irgendwie gespürt hatte, aber synthetisches Gedächtnis ist sogar noch viel katastrophaler, als ich gedacht hatte.
Ich wollte es ausprobieren, aber es werden nur bis zu Gemini 2.5 unterstützt … Ist sogar die Liste der unterstützten Modelle mit Vibe Coding zusammengeschustert?
Ein Fehler in der Zusammenfassung, dass es keinen Inhalt gibt, ist mir auch zum ersten Mal passiert..
Der Bereich, in dem ich arbeite, ist zwar nicht ganz so extrem, aber ich forsche und entwickle im AI-Bereich.
Neben den allgemein viel genutzten Frameworks kommt es auch vor, dass die Zielumgebung, in der das Modell tatsächlich deployt wird, von der Umgebung abweicht, in der es trainiert wurde.
Manche Operationen werden nicht unterstützt, sodass man plattformspezifische Custom-Operationen erstellen muss. In solchen Fällen kann man oft nicht direkt in der Entwicklungsumgebung testen.
Manchmal modelliert man das Modell auch selbst. Dafür kann man zwar mit bestimmten Daten Testcode schreiben, aber je nach Datensatz ändern sich die Werte probabilistisch, und Phänomene wie explodierende Werte zu bestimmten Zeitpunkten lassen sich mit Testcode nur schwer abdecken.
Ich vermute, es gibt wohl einige Umgebungen, in denen Tests noch schwieriger sind als bei mir.
Der Ansatz von SQLite ist wirklich beeindruckend. Eine Testsuite, die 590-mal so umfangreich ist wie der Code selbst, nicht öffentlich zu machen, bedeutet letztlich, dass „der wahre Wert von Software in der Verhaltensspezifikation liegt“.
Wenn man heutzutage tatsächlich mit AI-Coding-Tools Projekte baut, kann man mit dem README eines bestehenden Projekts, der API-Dokumentation und dem Testcode die Kernfunktionen erstaunlich schnell nachbauen. Das ist etwas, das ich beim Betrieb von sieben Projekten selbst gespürt habe: Paradoxerweise lassen sich gerade Projekte mit guten Tests auch leichter kopieren.
Allerdings gibt es im Fall Cloudflare vs. Vercel einen Punkt, der übersehen wurde: „Kopieren“ und „Betreiben“ sind völlig unterschiedliche Dinge. Um die Edge Cases von Next.js, das Plugin-Ökosystem und sogar die Abhängigkeit von der Community nachzubilden, reicht Testcode allein nicht aus. Letztlich ist der Burggraben wohl eher die Kombination aus Testcode, Community und Betriebs-Know-how.
Wow
Bei diesem Projekt dürfte die GC kaum in einem problematischen Ausmaß zum Thema werden. Ich denke, dass bei „den meisten Projekten in letzter Zeit“ die Wahl einer Programmiersprache in vielen Fällen eher eine Frage des Geschmacks ist als eine, die tatsächlich auf den Stärken oder Grenzen einer bestimmten Sprache beruht. Wenn man mich dennoch fragt, worin Rust als Allzweck-Programmiersprache gegenüber Go einen komparativen Vorteil hat, würde ich wohl antworten, dass Rust ein höheres Abstraktionsniveau bietet und viele Fehler bereits zur Compile-Zeit erkennen kann. Natürlich hat auch Go gegenüber Rust Vorteile, etwa einfache asynchrone Programmierung, schnelle Compile-Zeiten und eine knappe Syntax.
Selbst bei Verträgen auf demselben Niveau wirken Vertrauen und Image doch ganz unterschiedlich.
Dann sollte ich wohl mein GPT-Abo kündigen.
Mieses Gefühl, sorry
Wow, großartig. Das ist wohl dank RustPython möglich. Ich wünsche Ihnen gute Ergebnisse!
Bei Rust werden viele Fehler schon beim Kompilieren erkannt, sodass sich ein fehlgeschlagener Build eher so anfühlt, als würde er der AI helfen, auf den richtigen Weg zu kommen.
Ich habe mich beworben.
Nun ja, das ist zwar nur eine Vermutung, aber ich denke, es liegt daran, dass die Einstiegshürde für Rust verschwunden ist.
Die größte Schwierigkeit ist, dass man etwas programmiert und die Kompilierung dann ständig fehlschlägt – aber das übernimmt jetzt die KI.
War wohl nur ein Joke-Test.
DIY, Maker-Bewegung, Indie, Punk und Open Source sind alles Gegenbewegungen zu Industrialisierung, Kapitalismus und Konsumismus – und dann soll ausgerechnet die Akzeptanz des Konsumismus ihre Grenzen überwinden.
Ich stimme zu, dass Vibe Coding zum Konsum-Frame passt. Ich denke, es ist die Coding-Version von „Temu-kkang“ und „Ali-kkang“, die zuletzt im Trend waren (https://www.asiae.co.kr/article/2024053117460950053).
Wenn man aber sagt, dass der Konsum-Frame ein Weg sei, die Fehler der Maker-Bewegung nicht zu wiederholen, kann ich dem in vielerlei Hinsicht nicht zustimmen – ähnlich wie in den Kommentaren auf HN.
Vibe Coding setzt die historische Entwicklung der Citizen Developer fort.
Ich denke, Vibe Coding entwickelt sich nun dahin, Coding so einfach, schnell und unverzichtbar wie Elektrizität zu machen.
Bereits viele geniale Programmierer in Unternehmen schreiben keine einzige Zeile Code mehr und setzen das Coding mit Prompts und Agenten fort.
Es gibt zwar Menschen, die das herunterspielen wollen, aber ich denke, es ist schwer zu bestreiten, dass Andrej Karpathys Vibe Coding einen Meilenstein in der Computergeschichte markiert.
Gute Frage. Tatsächlich entsprach in unserem Experiment die „hybride“ Bedingung genau dieser Richtung — also eine Konfiguration, bei der zu einem aufbereiteten Summary zusätzlich rohe Erfahrungslogs bereitgestellt wurden.
Im Ergebnis schnitt Hybrid mit 4,95/5,0 am besten ab. Wenn man nur das Summary gibt, sind es 2,65, aber wenn man dazu Prozessaufzeichnungen wie „fehlgeschlagen“ oder „Ursache unbekannt“ ergänzt, werden die Schwächen des Summarys eher ausgeglichen.
Daher lautet das Fazit: „Nicht das Summary an sich ist schlecht, sondern es muss zusammen mit Prozess und Unsicherheit festgehalten werden.“
Allerdings ist N=1, daher sind Anschlussstudien nötig, um zu prüfen, ob sich das allgemein für verschiedene Nutzergruppen einsetzen lässt.
Würde es dann einen Unterschied machen, wenn wir das so aufbauen, dass ein synthetisches Gedächtnis den Prozess, die Misserfolge und die Erfolge solcher Aufgaben enthält?
Stimmt. Ich hatte anfangs auch erwartet, dass synthetischer Speicher zumindest besser als die Baseline sein würde, aber die Ergebnisse haben mich überrascht.
Bei der Analyse zeigte sich, dass der Schlüssel die „Bewahrung von Unsicherheit“ war. In den rohen Logs bleiben Spuren wie „Das habe ich ausprobiert, hat aber nicht funktioniert“ oder „Ursache unbekannt“ erhalten, sodass der Agent auf etwas, das er nicht weiß, auch mit „Ich weiß es nicht“ antwortet. In der Zusammenfassung wird dieser Kontext jedoch vollständig gelöscht, und am Ende gibt er falsche Antworten sogar mit Selbstsicherheit.
Das war etwas, was ich empirisch schon irgendwie gespürt hatte, aber synthetisches Gedächtnis ist sogar noch viel katastrophaler, als ich gedacht hatte.
Ich wollte es ausprobieren, aber es werden nur bis zu Gemini 2.5 unterstützt … Ist sogar die Liste der unterstützten Modelle mit Vibe Coding zusammengeschustert?