suckless.org

lundi 29 mars 2021 par SocraticDev

"suckless.org est une communauté de programmeurs travaillant sur des projets de logiciels libres minimalistes avec un accent sur la simplicité, la clarté et la frugalité." La communauté fut fondée par l'Allemand Anselm R. Garbe et combat le développement de logiciels tellement complexes qu'ils demandent des ordinateurs ridiculement puissants pour l'utilisation qu'on en fait.

Les projets maintenus par la communauté s'adressent à des initiés qui maîtrisent bien la technologie. Leurs outils répondent à des problèmes qui ne se posent pas du tout à la moyenne des utilisateurs qui utilisent un système d'opération 'clé en main' comme Ẁindows ou MacOS. Mais peuvent être attrayant pour des hobbyistes préférant assembler eux-mêmes tous les éléments de leur système.

En bref, suckless prône le principe fondamental de UNIX : "faire une seule chose, mais bien le faire". Les développeurs respectent le principe KISS (keep is simple and stupid) et le style "New Jersey". Le style 'New Jersey" se résume à l'expression oxymoronique "Worse is better". Il s'agit d'une remise en cause de l'opinion que la qualité d'un logiciel se mesure à ses fonctionnalités. On serait tenté de croire naïvement qu'un logiciel deviendra progressivement meilleur car on lui ajoutera de plus en plus de fonctionnalités. Toutefois, le principe "Worse is better" soutient qu'il vaut mieux, à long terme, préférer ("better") un nombre limité de fonctionnalité ("worse")

le style New Jersey vs. MIT

  1. simplicité - le design doit être simple autant dans l'interface que l'implémentation

    • NJ : il faut valoriser la simplicité. Surtout dans l'implémentation.
    • MIT : il faut valoriser la simplicité. Surtout dans l'interface
  2. exactitude - le design doit être correct dans tous les aspects

    • NJ: la simplicité est un peu plus importante que l'exactitude
    • MIT: l'inexactitude est simplement inacceptable
  3. consistance

    • NJ: on peut sacrifier la consistance d'un design au profit de la simplicité
    • MIT: le design doit être consistant. On peut complexifier le design afin d'éviter l'inconsistance
  4. complétude

    • NJ: le produit doit remplir tous les cas d'utilisation envisagés. Sauf si ça rend l'implémentation plus complexe. On peut toutefois sacrifier la consistance au profit de la complétude
    • MIT: Tous les cas d'utilisation envisagés doivent être couverts. La simplicité ne doit jamais réduire la complétude du produit

projets soutenus par suckless.org

- dwm – window manager
- dmenu – keyboard-driven menu utility
- ii – IRC client
- sbase - UNIX core utilities
- surf – web browser
- wmii – window manager
- st - lightweight, 256 colour-enabled (with 24-bit colour support) terminal emulator
- stali - static Linux distribution

controverse

Les développeurs de suckless provoquent régulièrement des controverses. Sans l'ombre d'un doute, il s'agit d'une culture élitiste pouvant sembler hostile aux néophytes. Ils représentent manifestement l'exception dans l'univers techno où on valorise l'inclusivité parfois, peut-être, au détriment de la qualité de l'implémentation technique.

Un redditeur pose la question suivante:

"Est-ce que faire la promotion de normes et de certaines valeurs est instrinsèquement hostile aux non-membres? Surtout lorsqu'on parle de produits destinés à un nombre limité d'utilisateurs ... et que ces derniers partagent de toute façon les mêmes valeurs que suckless"

sources

https://www.reddit.com/r/linux/comments/exzjs1/about_the_suckless_softwarephilosophy/

https://www.wikiwand.com/fr/Suckless.org

https://www.wikiwand.com/en/Worse_is_better