18 points par GN⁺ 2025-02-25 | 2 commentaires | Partager sur WhatsApp

Philosophie

  • Nous sommes une communauté qui développe des logiciels de haute qualité comme dwm, dmenu, st, avec pour valeurs fondamentales la simplicité, la clarté et la frugalité (Simplicity, Clarity, Frugality)
  • Nous nous opposons à la réalité d’une industrie IT envahie par des logiciels inutilement complexes, bourrés d’erreurs et lents
  • Notre objectif est d’aller à contre-courant de cette tendance et de conserver des projets simples, minimaux et faciles à utiliser
  • Nos projets s’adressent aux utilisateurs expérimentés et aux professionnels de l’informatique
    • Nous estimons que la plupart des logiciels commerciaux et la majorité des projets open source sont développés pour des non-spécialistes et le grand public, au détriment des utilisateurs avancés
    • À l’inverse, nous pensons que le marché des utilisateurs expérimentés continue de croître et que les utilisateurs avancés peuvent trouver les solutions optimales adaptées à leur manière de travailler
  • Concevoir des logiciels simples et élégants est bien plus difficile
    • Mais c’est un prix à payer pour la fiabilité et la maintenabilité
    • Préserver le minimalisme (minimalism) permet d’avoir des objectifs raisonnables et atteignables
    • Nous nous efforçons de préserver le minimalisme et la clarté

Manifeste

  • Beaucoup de développeurs prennent à tort la longueur du code pour un accomplissement
    • Pourtant, une plus grande quantité de code n’améliore pas nécessairement la qualité du logiciel
    • On peut avoir l’impression que plus on avance, plus on progresse en compétences, mais ce n’est qu’une illusion
  • Beaucoup de développeurs ne se soucient pas de la qualité du code et se satisfont simplement d’un résultat qui semble fonctionner
    • Si cette manière de faire perdure, elle laisse avec le temps des masses de code, une structure de code complètement brisée et une conception système truffée de défauts
    • Cela vient d’un manque de clarté conceptuelle et d’intégrité dans le processus de développement
  • La complexité du code est la cause profonde de logiciels inefficaces et incohérents
    • Un code complexe entraîne des baisses de performance, du gaspillage de ressources et des vulnérabilités de sécurité
    • La seule solution consiste à abandonner l’ensemble du projet et à tout réécrire depuis zéro
  • Le problème, c’est que les réécritures de code de haute qualité sont rares
    • Beaucoup de développeurs sont fiers de la quantité de leur code, croient à tort avoir compris la complexité et pensent qu’il n’est pas nécessaire de réécrire
    • Ils se prennent pour des génies et prennent à tort les logiciels complexes pour un idéal
  • Les grandes idées sont simples. Les grands logiciels aussi sont simples
    • La simplicité est au cœur de la philosophie Unix
    • Plus le nombre de lignes de code supprimées est élevé, plus le progrès est grand ; moins il y a de code, plus le développeur est compétent et meilleur est le logiciel

2 commentaires

 
aer0700 2025-02-25

C’est vraiment un manifeste débordant d’énergie, haha. C’est super.

 
GN⁺ 2025-02-25
Avis Hacker News
  • La FAQ de Stali Linux de Suckless m’a beaucoup influencé. Ils ont construit un espace utilisateur Linux entièrement lié statiquement

    • Avant, je tenais pour acquis l’approche Linux des « bibliothèques partagées pour tout »
    • Quand je créais de petits outils CLI, je préparais un paquet de distribution ou j’utilisais un tarball pour configurer les bibliothèques
    • J’ai réalisé que cette façon de faire n’était pas forcément nécessaire
    • Depuis, j’utilise autant que possible le lien statique, sinon j’utilise des AppImages
    • Les liens dynamiques ont aussi leur utilité, mais je pense que, par défaut, la distribution logicielle n’a pas besoin d’être compliquée
  • Grâce à dwm et dmenu, mon bureau n’a presque pas changé en 10 ans. J’adore la stabilité qu’apporte le minimalisme

  • Je ne comprends pas l’idée de ne pas utiliser la déclaration initiale dans une boucle for. Accepter les macros variadiques tout en disant que for(int i = 0...) est trop complexe, ça n’a pas de sens pour moi

  • Je peux adhérer au minimalisme, mais tout n’est pas nécessaire

  • La philosophie de programmation de Suckless est belle. J’aimerais que tous les logiciels soient écrits selon cette philosophie. Mais le gestionnaire de fenêtres et le menu X n’en sont pas les meilleurs exemples

  • Les dramas de la communauté sont ridicules. J’utilise ces outils parce que j’aime leur philosophie logicielle. Les convictions personnelles ou les orientations politiques de l’auteur ne m’intéressent pas

  • Après avoir évalué plusieurs terminaux, je suis revenu à un fork de st. Je l’utilise depuis des années, et c’est stable et sans bug

  • Cette philosophie n’est pas parfaite, mais c’est l’approche qui se rapproche le plus de la création de logiciels fiables. Contenir la complexité est la tâche la plus difficile et la plus importante

  • surf est un navigateur web simple basé sur WebKit2/GTK+. Il peut afficher des sites web et suivre des liens

  • dwm se personnalise en modifiant le code source, donc créer des paquets binaires n’a pas de sens. Sa base d’utilisateurs est petite et élitiste

  • C’est du Suckless, mais je veux un logiciel asynchrone et polyvalent. Je cherche des applications qui fonctionnent en coopération, avec beaucoup d’apps monothread

  • C’est bien qu’ils existent. J’apprécie ce qu’ils font. Mais je préfère les logiciels avec un peu d’inconfort. La configuration de BSPWM est à peu près acceptable, mais recompiler du code C, c’est trop