Have you ever heard about suckless and their philosophy? If no, then this article is just for you!
Suckless is a famous community in the GNU/Linux world, primarily because of their philosophy and software.
The name is essentially a call-out to software developers that their software, well.. Should Suck Less. But what does it mean to suck less? Let's find out.
Suckless started out as a local community of developers in 2002, which eventually grew and became more wide-known in 2006-2012. Nowadays it's a relatively large community among GNU/Linux folks and is admired by many.
Their main achievements are programs such as: DWM (Dynamic Window Manager), ST (Simple Terminal), II (Irc It), etc.
What makes them so good is that they provide the bare minimum for a functioning app, and let the user easily extend/configure the functionality by directly changing the source code.
A great example of this would be the previously mentioned DWM. It contains only 2000 Significant Lines of Code (I.E meaningful lines of code. So things like curly braces, empty new lines, don't count as such) which makes it very easy to change the code without breaking stuff. Its existing functionality is configured via the "config.h" file, and extended via patching (or diffing) the "dwm.c" file.
They adhere to the Unix Philosophy of doing one thing, and doing it well.
They focus on simplicity, clarity and keeping things minimal.
They believe that most coders these days think that writing more lines of code results in bigger progress, bigger progress means bigger skill, suckless states that it's simply a delusion. What they say instead is that minimalism sets attainable goals and as such, makes development and extending easier.
A Quote from their own website:
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.
They host a list of software that sucks (Which is bad, duh), and a list of software that rocks (Which is good, duh).
Suckless also gives coding style guidelines which are supposed to make your code more readable.
To wrap things up, let's recap on things that make your software suck less:
- Simplicity, Clarity and Minimalism
- Doing one thing, and doing it well
Thanks for Reading!