¿Qué es Suckless?

Es la filosofía –propiciada de forma significativa por el grupo de programadores del mismo nombre– que sostiene que, en cuanto al software, lo minimalista y modular es lo mejor; que, en vez de un programa que haga de todo de forma mediocre –lo que se conoce como software monolítico–, es mejor tener varias aplicaciones que hagan su función a la perfección y se comuniquen entre ellas como es necesario –algo que, incluso desde el punto de vista de la ciberseguridad es una ventaja–.

En la web en que dicho grupo habla de la filosofía Suckless vemos que:

Ingenious ideas are simple. Ingenious software is simple. Simplicity is the heart of the Unix philosophy. The more code lines you have removed, the more progress you have made. As the number of lines of code in your software shrinks, the more skilled you have become and the less your software sucks.

Este grupo –y la comunidad que han formado alrededor de esta forma de pensar– tienen en gran estima el no comerse la cabeza haciendo grandes cosas ni llenar el código de retrocompatibilidad. Esto lo llevan a la práctica en sus decenas –si no centenas– de proyectos que han desarrollado tanto ellos como sus discípulos. Generalmente no siguen un criterio o escrutinio a la hora de elegir qué hacer sino que, simplemente, hacen los programas que les apetece –muy a menudo siendo reworks de utilidades que ya existen– recordándose que menos es más. Por ejemplo, algunos de los programas que los mismos componentes del grupo Suckless ha desarrollado son:

  • dwm, el WM dinámico para X. Es un entorno gráfico de un solo ejecutable y alrededor de 3 mil líneas de código.
  • st, la terminal para X. El ejemplo contra la retrocompatibilidad agresiva, presume de ser igual de útil que xterm o rxvt teniendo menos de un 15% del código, diciendo que La emulación de terminal no debe ser tan compleja, a base de dejar de ser compatible con terminales del siglo pasado.
  • surf, el navegador de X con WebKit2. No tiene soporte para pestañas y funciona con solo 3 mil líneas de código.
  • sup, el sustituto de sudo con solo cien líneas de código frente a las 50 mil de su competidor.

Habiendo además ejemplos de otras personas y grupos que han hecho programas siguiendo esta filosofía –programas que van desde servidores web hasta clientes DHCP pasando por programas de presentaciones y reemplazos del programa sudo–.

¿Y por qué no los usa todo el mundo?

Un software tan minimalista trae con, obviamente, consecuencias para el usuario final. Aunque sus programas sean de unos pocos KB de tamaño y funcionen rápido como el rayo, lo hacen a cambio de ser mucho menos amigables y propensas a la mala fama.

De su nula presencia en package-managers a su uso de lenguajes que son conocidos por su susceptibilidad a bugs y problemas –a cambio de su eficiencia y no intrusividad–, estos programas discriminan a grupos enteros de personas y son relativamente poco accesibles.

Sin embargo, lo más importante en la controversia con estos programas es la tendencia a quitar en vez de poner. Por ejemplo, una de las cosas que se ha hecho con estos programas para conseguir esta brutal ligereza es deshacerse de los archivos de configuración y funciones que han considerado supérfluas.

Referente a la carencia de un archivo de configuración, si quieres que un programa tenga colores distintos, funciones más avanzadas o un diseño de otro estilo tendrás que cambiar su código fuente y recompilarlo para aplicar sus cambios.

En cuanto a las funciones supérfluas, el navegador surf no tiene pestañas, st no tiene soporte para la rueda del ratón, dwm no tiene soporte para temas GTK o fondos de pantalla… y, aunque no sean sacrificios hechos a la ligera y realmente tienen una intención y razón de ser, es comprensible que los usuarios lo tomen como demasiado extremo.

Puesto el contexto, al grano

Como dije en el post de mi historia con Linux, para la fecha en que escribo este post llevo dos meses usando herramientas Suckless allá donde veo que puede encajar –esto es, mi navegador todavía sigue siendo Firefox y no tengo la menor intención de sustituirlo por surf–. Antes estaba usando KDE Plasma con Konsole, pero me parecía demasiado complejo y hambriento de memoria para lo poco que necesitaba.

En cuanto a las herramientas que tengo instaladas, sobre todo destacaría el uso de dwm, dmenu y un fork de st con soporte para la rueda del ratón –cosa que no se suele incluir porque los powerusers de la terminal usan otros programas que ya lo hacen y a Suckless no les gusta redundar–; y mi experiencia ha sido brutal.

Suckless y sus colaboradores no se han pasado con las promesas. En efecto, la experiencia es pulida, rápida y estable al máximo, tal y como prometían. Ninguna de las aplicaciones que he utilizado se han tenido que reiniciar por un fallo o algo por el estilo, y el consumo de memoria es mínimo –18MB para la interfaz gráfica dwm y 30 por cada instancia de st–.

Además, aunque la configuración por medio del mismo código fuente del programa pueda parecer intimidante, al final ayuda mucho a mantener la carpeta de usuario controlada puesto que no hace falta tener una estructura de carpetas para las distintas opciones que quieras cambiar. Simplemente cambia el archivo de código, recompila el programa, y ponlo en /bin.

Eso sí, la interfaz de dwm es simplísima, siendo solo una barra superior donde ver el título de la ventana y el uso de dmenu para abrir programas escribiendo su nombre; y la de st no es más que una pantalla negra con texto negro, nada más.

Nunca necesité más cosas de todos modos…

Y algo más

Además de la migración de KDE Plasma a dwm y lo propio con su emulador de terminal, el éxodo del software monolítico no terminará aquí.

Systemd también se va.

Estará documentado aquí en este blog.

Gracias por leerme.