18 Punkte von GN⁺ 2025-02-25 | 2 Kommentare | Auf WhatsApp teilen

Philosophie

  • Wir sind eine Community, die hochwertige Software wie dwm, dmenu, st entwickelt, und betrachten Einfachheit, Klarheit und Genügsamkeit (Simplicity, Clarity, Frugality) als unsere Kernwerte
  • Wir wenden uns gegen die Realität, dass in der gesamten IT-Branche unnötig komplexe, fehleranfällige und langsame Software allgegenwärtig ist
  • Unsere Projekte haben das Ziel, sich diesem Trend entgegenzustellen und Software einfach, minimal und leicht nutzbar zu halten
  • Unsere Projekte richten sich an erfahrene Computernutzer und Fachleute
    • Wir sind der Ansicht, dass die meisten kommerziellen Softwareprodukte und die Mehrheit der Open-Source-Projekte für Nichtfachleute und allgemeine Nutzer entwickelt werden, wodurch erfahrene Nutzer vernachlässigt werden
    • Wir hingegen glauben, dass der Markt erfahrener Nutzer stetig wächst und fortgeschrittene Anwender die optimale Lösung für ihre eigene Arbeitsweise finden können
  • Einfache und elegante Software zu entwerfen, ist deutlich schwieriger
    • Dennoch muss man diesen Preis für Zuverlässigkeit und Wartbarkeit zahlen
    • Wenn man Minimalismus bewahrt, kann man vernünftige und erreichbare Ziele haben
    • Wir bemühen uns, Minimalismus und Klarheit zu bewahren

Manifest

  • Viele Entwickler verwechseln lang geschriebenen Code mit Leistung
    • Doch eine große Menge Code bedeutet nicht zwangsläufig, dass sich die Qualität der Software verbessert
    • Je weiter man vorankommt, desto eher scheint es, als würden die eigenen Fähigkeiten wachsen, aber das ist nur eine Illusion
  • Viele Entwickler achten nicht auf Codequalität und sind schon damit zufrieden, dass etwas funktioniert und so aussieht, als würde es ein Problem lösen
    • Wenn diese Vorgehensweise beibehalten wird, bleiben mit der Zeit riesige Codebasen, völlig zerstörte Codestrukturen und fehlerdurchsetzte Systementwürfe zurück
    • Der Grund dafür ist ein Mangel an konzeptioneller Klarheit und Integrität im Entwicklungsprozess
  • Die Komplexität von Code ist die grundlegende Ursache für ineffiziente und inkonsistente Software
    • Komplexer Code führt zu Leistungsabfall, Ressourcenverschwendung und Sicherheitslücken
    • Die einzige Lösung besteht darin, das gesamte Projekt zu verwerfen und von Grund auf neu zu schreiben
  • Das Problem ist, dass hochwertige Neuschreibungen fast nie stattfinden
    • Viele Entwickler sind stolz auf die Menge ihres Codes und glauben fälschlicherweise, die Komplexität verstanden zu haben, sodass sie meinen, ein Rewrite sei nicht nötig
    • Sie halten sich für Genies und verwechseln komplexe Software mit einem idealen Ziel
  • Herausragende Ideen sind einfach. Großartige Software ist ebenfalls einfach
    • Einfachheit ist der Kern der Unix-Philosophie
    • Je mehr Codezeilen entfernt werden, desto größer ist der Fortschritt; je weniger Code bleibt, desto erfahrener wird der Entwickler und desto besser wird die Software

2 Kommentare

 
aer0700 2025-02-25

Das ist wirklich ein Manifest voller Kampfgeist, haha. Großartig.

 
GN⁺ 2025-02-25
Hacker-News-Kommentare
  • Die Stali-Linux-FAQ von Suckless hat mich stark beeinflusst. Sie haben einen vollständig statisch gelinkten Userspace für Linux gebaut

    • Zuvor hielt ich den Linux-Ansatz „Shared Libraries für alles“ für selbstverständlich
    • Wenn ich kleine CLI-Tools gebaut habe, habe ich Distributionspakete erstellt oder Bibliotheken per Tarball eingerichtet
    • Mir wurde klar, dass dieser Ansatz nicht unbedingt nötig ist
    • Seitdem nutze ich wann immer möglich statisches Linking, sonst AppImages
    • Dynamisches Linking ist ebenfalls nötig, aber ich denke grundsätzlich nicht, dass Software-Distribution kompliziert sein muss
  • Dank dwm und dmenu hat sich mein Desktop seit 10 Jahren kaum verändert. Ich liebe die Stabilität, die Minimalismus mit sich bringt

  • Ich verstehe nicht, warum man keine Initialdeklaration in for-Schleifen verwenden soll. Variadische Makros sollen okay sein, aber for(int i = 0...) sei zu komplex — das ergibt für mich keinen Sinn

  • Ich kann Minimalismus akzeptieren, aber nicht alles davon ist notwendig

  • Die Coding-Philosophie von Suckless ist schön. Ich wünschte, alle Software würde nach dieser Philosophie geschrieben. Aber Window-Manager und X-Menüs sind nicht die besten Beispiele dafür

  • Das Drama in der Community ist lächerlich. Ich nutze diese Tools, weil ich die Software-Philosophie liebe. Die persönlichen Überzeugungen oder politischen Neigungen der Autoren interessieren mich nicht

  • Nachdem ich verschiedene Terminals evaluiert hatte, bin ich zu einem st-Fork zurückgekehrt. Ich nutze ihn seit Jahren, und er ist stabil und fehlerfrei

  • Diese Philosophie ist nicht perfekt, aber sie ist der Ansatz, der dem Erstellen vertrauenswürdiger Software am nächsten kommt. Komplexität in Schach zu halten ist die schwierigste und wichtigste Aufgabe

  • surf ist ein einfacher Webbrowser auf Basis von WebKit2/GTK+. Er kann Websites anzeigen und Links folgen

  • dwm wird durch Bearbeiten des Quellcodes angepasst, daher ist es sinnlos, Binärpakete dafür zu bauen. Die Nutzerbasis ist klein und elitär

  • Es ist zwar Suckless, aber ich möchte asynchrone Software und Software für alles. Ich suche nach Apps, die so funktionieren, dass viele Apps kooperativ in einem einzelnen Thread zusammenarbeiten

  • Es ist gut, dass es sie gibt. Ich schätze, was sie tun. Aber ich bevorzuge Software mit ein wenig Komfort. Die Konfiguration von BSPWM ist genau richtig, aber C-Code neu zu kompilieren ist zu viel