Schreibe Software, die Menschen berührt
(rapha.land)- Der Autor, der den persönlichen Code-Editor Boo entwickelt hat, erklärt, warum er das Projekt vorübergehend pausiert und eine neue Programmiersprache entwickelt.
- Boo ist ein auf Rust basierender Editor mit menschzentrierter Tastaturnavigation und einem LSP-Ersatzsystem, wobei er eher auf den persönlichen Nutzen als auf Kommerzialisierung ausgelegt ist.
- Er merkt an, dass ein repetitiver Entwicklungsprozess seine Kreativität mindert, und legt den Fokus auf die Freude am Bau von inspirierender Software.
- Er hebt mit Lego-Blöcken und The Legend of Zelda: Breath of the Wild die Bedeutung von bleibenden Werken hervor.
- Er will nicht einer Erfolgsformel folgen, sondern seine interessen- und lernorientierte Entwicklungsphilosophie beibehalten und plant, Boo künftig in seiner eigenen Sprache neu zu schreiben.
Boo-Projekt und Beweggrund der Entwicklung
- Boo ist ein Projekt, das der Autor als persönlichen Code-Editor für sich selbst entwickelt hat und dabei auf persönlichen Nutzen statt auf Massenwirkung zielt.
- Boo verfügt über menschzentrierte Tastaturnavigation und nutzt statt LSP (Language Server Protocol) ein schnelleres System mit geringerer OS-Belastung.
- Es funktioniert bereits so weit, dass es im Alltag genutzt werden kann, aber es gibt keine Pläne für einen Open-Source-Release.
- Sowohl Boo als auch Rio Terminal sind in Rust geschrieben und haben eine ähnliche Struktur sowie einen ähnlichen Veröffentlichungsprozess.
- Diese Ähnlichkeit empfinden sie als repetitive Arbeit, die den Spaß am Entwickeln reduziert.
Kreativität und Inspiration
- Er beschreibt das Spielen mit Lego-Steinen als Beispiel dafür, dass die Freiheit, jedes Mal andere Formen zu schaffen, die eigentliche Freude am Gestalten ausmacht.
- Die Faszination liegt nicht darin, dieselben Teile endlos zu wiederholen, sondern darin, durch externe Elemente neue Ergebnisse zu erzeugen.
- Je repetitiver die Programmierung wird, desto geringer ist die Chance auf ein Werk mit einem "Wow"-Effekt.
- Er betont, dass man selbst inspiriert sein muss, um inspirierende Software zu schaffen.
Beispiele für bleibende Software
- Er nennt The Legend of Zelda: Breath of the Wild als Beispiel und erwähnt die Qualität, die sogar Menschen dazu brachte, eine Konsole zu kaufen, obwohl sie das Spiel nicht gespielt haben.
- Er unterstreicht die Wirkung von Werken, die auch lange nach der Nutzung im Gedächtnis bleiben.
- Er erklärt, dass sorgfältig gestaltete Software mit solcher Qualität den Menschen einen emotionalen Eindruck hinterlässt.
Unterbrechung von Boo und Entwicklung einer neuen Sprache
- Boo ist ein Hobbyprojekt ohne geschäftliche Motivation, ohne Umsatzdruck oder feste Frist.
- Der Autor hat nicht die Absicht, ein großes Projekt wie VS Code zu erstellen, und treibt es nicht gewaltsam voran.
- Er hat Boo vorübergehend ausgesetzt, um später bei wiederkehrender Inspiration anzuknüpfen, und arbeitet derzeit an einer eigenen Programmiersprache.
- Langfristig plant er, Boo mit dieser Sprache neu zu schreiben.
Entwicklungsphilosophie und Haltung
- Die Entwicklung einer neuen Sprache bedeutet viel Arbeit, doch der Autor versteht sie als freudigen Lernprozess.
- Er vertieft sein Verständnis für Binärdateien und Compiler und geht in seinem eigenen Tempo vor.
- Statt externen Erfolgsformeln oder Ratschlägen zu folgen, hält er an seiner eigenen Denkweise und seinen Interessen fest.
- Auch dieser Beitrag wurde mit Boo geschrieben
1 Kommentare
Hacker-News-Kommentare
Nachdem ich den Beitrag gelesen hatte, dass jemand aufgewacht ist, Kaffee getrunken hat und dann den Nachmittag frei hatte, weil die Familie eingeschlafen war, habe ich mich gefragt, wie ihre Zeitzonen eigentlich auseinandergehen. Vielleicht ist es eine Familie, die nachmittags schläft, oder Menschen, die erst abends aufstehen und dann ihren Tag beginnen
Die Aussage „Dieser Editor existiert, um mir Freude zu machen“ fühlt sich erfrischend an. Heutzutage steht jedes Side-Project unter dem Druck, sich zu Open Source oder SaaS weiterzuentwickeln, und das erstickt Kreativität oft eher. Experimentelle Projekte wie Boo oder Rio scheinen aus genau dieser Freiheit zu entstehen
„Ich habe es für mich selbst gemacht“ — so arbeiten viele Künstler. Tolkien war genauso, und die meisten schaffen erst für sich selbst und zeigen es der Welt erst später. Meist interessiert es dann niemanden, oder es wird erst nach dem Tod gewürdigt. Das ist aber in Ordnung. Wichtig ist der menschliche Instinkt, Vorstellungskraft nach außen auszudrücken
Wenn Programmieren repetitiv wird, nimmt der Wow-Faktor ab. Aber Projekte wie yt-dlp, die viele verschiedene Websites unterstützen, sind eine Ausnahme. Unzählige Datenparser zu bauen ist langweilig, vermittelt am Ende aber das Gefühl, dass es überall funktioniert
Ich entwickle Software, die Menschen etwas fühlen lässt — meistens Wut. Am Ende gibt es nur zwei Arten von Software: solche, die ignoriert wird, und solche, die genug genutzt wird, dass sich Menschen darüber beschweren
Emacs und Emacspeak lösen bei mir gewaltige Gefühle aus. Alles wirkt wie ein einziges Handbuch, und mit C-h m bekommt man sofort alle Befehle angezeigt. Nichts ist versteckt, man muss keine HTML-Dokumentation durchwühlen. Und wenn etwas nicht geht, repariere ich es notfalls mit Codex, bis es tut, was ich will
Im Idealfall sollte Softwareentwicklung als Handwerk behandelt werden. Wie Tischlerei kann sie nützlich sein und zugleich Kunst. Aber in vielen Projekten werden Entwickler wie Fabrikarbeiter behandelt. Das Problem ist eine Kultur, die Menge vor Qualität stellt.
Gleichzeitig ist es auch nicht praktikabel, Software nur als Kunst zu sehen. Code ist nicht zum Betrachten da, sondern zum Funktionieren. Trotzdem ist es schade, dass der Ausdruck „mit Handwerkskunst gebaute Software“ so ungewohnt klingt
Auch FAANGs wie Meta und Google haben bereits Software gebaut, die Menschen etwas fühlen lässt — Wut, Depression, manchmal sogar Freude. Aber sie zeigen auch, wie Technik, die mit guten Absichten beginnt, verzerrt werden kann. Wie es heißt: „Der Weg zur Hölle ist mit guten Absichten gepflastert.“ Das Streben nach Gutem führt oft zu Bösem.
Um Knuth zu zitieren: Fortschritt entsteht daraus, „Tausenden Informatikern die Freiheit zu geben, zu tun, was sie wollen“. So war es bei Bell Labs, und genau diese Freiheit zur Erforschung ist wichtig.
Heute ist man von Optimierung besessen, mathematisch aber oft unbeholfen, und am Ende sind wir zu einer Gesellschaft geworden, die aufgehört hat zu erkunden. Deshalb, glaube ich, ist der Fortschritt langsamer geworden
Das ist eine Gewohnheit, die ich von Casey Muratori und Jonathan Blow gelernt habe: Ich baue gern meine eigene kleine Welt. Es sind Projekte, bei denen ich der einzige Nutzer und das einzige Publikum bin. Ein Raum reiner Freude ohne Deadlines, ohne Anforderungen und ohne Runtime
Die meiste Software heutzutage löst bei mir starke Gefühle aus
node_modulesmacht mich wütend. Wenn ich Electron-basierte Apps sehe, denke ich: „Wo sind wir falsch abgebogen?“ Ich hasse es auch, mobile UIs auf den Desktop zu kleben