# Suckless

Suckless, software that sucks less, is a type of free software, programming philosophy as well as an organization (http://suckless.org/), that tries to adhere to a high technological minimalism, freedom and hackability, and opposes so called bloat and unnecessary complexity which have been creeping into most "modern" software and by which technology has started to become less useful and more burdening. It is related to Unix philosophy and KISS but brings some new ideas onto the table. It became somewhat known and highly influenced some newly formed groups, e.g. Bitreich and our own less retarded software. Suckless seems to share many followers with cat-v.org. Suckless has a very minimalist logo that's just a super simple letter *S*.

The community used to be relatively a small underground niche, however after a rise in popularity sometime in 2010s, thanks to tech youtubers such as Luke Smith, Distro Tube and Mental Outlaw, the awareness of the group spread a lot wider, even mainstream programmers now usually know, at least remotely, what *suckless* stands for. It has also gained traction on 4chan's technology board which again boosted suckless popularity but also inevitably brought some retardism in. While the group core consisting a lot of expert programmers and hackers mostly interested in systems like GNU/Linux, BSDs and Plan 9, a lot of less skilled "Linux" users and even complete non-programmers now hang around suckless to various degrees -- especially the dwm window manager has seen a great success among "Unix porn" lovers and chronic ricers. While most of the true suckless followers are hardcore minimalists and apply their principles to everything, many of the noobs around suckless just cherry pick programs they find nice to look at and integrate them in their otherwise bloated systems -- same kind of story we've already seen with free software etc.

Suckless is pretty cool, it has inspired LRS, but watch out, as with most of the few promising things nowadays it is half cool and half shitty -- for example most suckless followers seem to be rightists and capitalists who are motivated by harmful goals such as their own increased productivity, not by altruism or any other kind of higher goal. Many suckless people are quite pragmatic -- though they believe in hardcore minimalism, they will oftentimes, for practical reasons, rather choose e.g. a well established programming language (C) before the more minimal one (e.g. Forth). LRS takes the good and tries to fix the issues of suckless, we only take the good ideas of suckless. Also it seems like by now that part of the suckless community degenerated a bit by its mainstreamization into a bit of what it opposed -- a kind of consumerist fashion followers who aren't interested so much in good design of technology but rather constantly ricing their dwm in pursuit of cool looking pseudominimalist system in ways not dissimilar to those of iToddlers.

{ From what it seems to me, the "official" suckless community is largely quiet and closed, leading conversations mostly on mailing lists and focusing almost exclusively on the development of their software without politics, activism and off topics, probably because they consider it bullshit that would only be distracting. There is also suckless subreddit which is similarly mostly focused on the software alone. They let their work speak. Some accuse the community of being Nazis, however I believe this is firstly irrelevant and secondly mostly false accusations of haters, even if we find a few Nazis among them, just as in any community. Most pro-suckless people I've met were actually true socialists (while Nazis are not socialist despite their name). Unlike tranny software, suckless software itself doesn't promote any politics, it is a set of purely functional tools, so the question of the developers' private opinions is unimportant here, we have to separate ideas and people. Suckless ideas are good regardless of whose brains they came from. ~drummyfish }

## Attributes

Notable attributes of suckless software include:

- **Being free software** with the preference of **permissive licenses** such as MIT and CC0.
- **Extreme minimalism and minimizing dependencies**, elimination of any bullshit and **bloat**, minimizing freedom distance. Advocating Unix philosophy, KISS etc.
- **Configuration of software is part of its source code** (`config.h`) and change of this configuration requires recompiling the software (which is extremely easy and fast with suckless software). This removes the need for dealing with config files which requires special libraries, file systems and extra code.
- Mainly using two programming languages: **C** (C89 or C99) for compiled programs and **POSIX shell** for scripting. Some also use languages such as go or lisp, but they're in minority.
- **Forking and compiling by default**, software is distributed in source format (no binaries), every user is supposed to create a personal customized fork and compile/customize the software himself.
- Mods (extension/addons) are implemented and distributed as **patch files**. The idea is to fork the base version of the software and then apply patches to make a unique, completely personalized version of the software.
- **Typical upper limit for lines of code of about 10k**, mostly just about 1-2k. This makes software easy to understand, modify, fork and maintain.
- **Focus on the technology itself** without mixing it with politics and other bullshit such as COCs.
- Not aiming for mainstream popularity, being a bit of an **elitist club**, in the good sense -- suckless is for expert users who understand, handle and create non-mainstream technology without handholding. Trying to be normie friendly would just lead to software and community that looks like the mainstream software and its community. { My view on this is that it's not that suckless WANTS to be an elitist club for its own sake; the issue lies in mainstream technology being hostile towards ethical software -- using ethical software nowadays requires one to be very tech savvy, hence it's not suckless who is discriminating but rather those who create mainstream technology. ~drummyfish }

Sometimes suckless is simply about being clever and less retarded. Really all it takes may be only having the balls to say "ENOUGH! I'm done with this bullcrap, let do me do it right." This is well exemplified by the suckless image format farbfeld -- a very simple format consisting only of magic number, width and height and raw pixel values, and at first sight it might look like bloat by wasting storage space: it stores every pixel with 8 bytes (RGBA, 16 bits per component). The ingenuity is in fact in leaving compression to other programs such as bzip, i.e. something completely aligned with Unix philosophy -- each tool only does one job. This combination (at least according to the author) many times beats even such sophisticated formats as PNG. Uncompressed farbfeld is used only for image processing, where it does amazing job, it can be read and written with a few lines of code in C.

## History

Suckless in current form has existed since 2006 when the domain suckless.org was registered by a German guy Anselm R. Garbe who is the founder of the community. It has evolved from a community centered around specific software projects, most notably wmii. Garbe has given interview about suckless in FLOSS Weekly episode 355.

Some time before 2010 suckless developed stali, a statically linked glibc-less "Linux distro" that was based on the idea that dynamic linking is harmful and that static linking is mostly advantageous. It also came with suckless software by default. This project was made independent and split from suckless in 2018 by Garbe.

In 2012 a core veteran member of suckless, a Spanish guy nicknamed Uriel, has killed himself and became a meme.

## Projects

Notable projects developed by the suckless group include:

- dwm
- st
- dmenu
- surf
- stali
- ...

However there are many more (IRC clients, file formats, presentation software, ...), check out their website.

## See Also

- less retarded software
- reactionary software
- bitreich
- cat-v