Suckless our hope for better software

I was introduced to suckless software by using dmenu, dmenu is a dynamic menu application for X to select options, I was aroused by the simplicity of the code, it was less than 1000 lines of beautiful C, then I discovered other beautiful stuff from suckless: dwm, st(submitted a patch to this), surf, sent and slock, here I discuss suckless the philosophy, the benefits in the real world and my point of view.

The philosophy

The suckless community started in 2002 by Anselm R Garbe, it was made possible by people like Uriel, hiltjo, 20h (with whom I had funny encounters in the irc channel) and many others.

The gist of the suckless philosophy is to make less complicated software, therefore make software that sucks less, so a software written in 2000 lines of C code is definitively better than a 4000 C++ program. So program complexity is not only quantified by lines of code, but what language it's written in.

suckless fanatics argue that OOP in most cases is useless and adds unneeded complexity to code. So abstracting is rejected. Everything should be written in as an imperative program in the less line count possible.

I think we all agree that GNU software sucks (looking at you Emacs), since it's a pile of dog shit, here is a comparison of the cat program implementation between GNU and plan91.

And because GNU software sucks, people have been writing suckless base tools for linux, some people also ported the user base programs from plan9 to linux.

One might ask, what does software simplicity bring to the table. The answer is everything programmers hope for, that is more security (less complicated software exposes a smaller attack vector), lower maintenance costs and fewer bugs, this is programmers bliss.

Applications to the real world

Although the suckless ideology might seem an elitist dogma targeted for expert computer hackers, I think the corporate world can benefit immensely from it's ideas. Even though it might be a blaring need to make computers less complicated, management doesn't care about software maintainability because of rewriting costs it might come with and little to no business added value.

The corporate world tends to always chose money over a better world. An exception to the latter statement is Bell Labs in the 80s, since it was acquired by AT&T, programmers had the opportunity work on whatever they liked and that is how plan9 was born.

But what adds insult to injury is that hipster programmers don't care about simple and concise software more than they care about the last javascript framework or a new 500 MB electron text editor.

My 2 cents

Ideally suckless ideas are the way to go. But sadly we don't live in a utopia. I personally still use Emacs, the embodiment of all bloated things, but I like it very much as much as I prefer bash, Common Lisp and stumpwm to mksh, C and dwm.

I forked dwm to kwm that's a stumpwm-like window manager, I stopped writing features for this since I realized that it doesn't matter if my window manager sucks less. After all I use all of that pile of shit software, it doesn't really matter.

An interesting thought also is that everything is a hack. I mean we made silicon and germanium into semiconductors and then into microprocessors, I think that is the greatest hacking stunt of the last 5 centuries.

So the conclusion is, suckless isn't important unless an insurrection takes place in the computers world and replaces all of the piles of shitty software, until that time comes I'm happy with my bloated GNU software.



Implementation comparison between plan9 and gnu: longcat.png

hacker emblem