$npx -y skills add Fuwn/suckless-agent-skills --skill philosophySuckless philosophy and manifest for building simple, minimal, maintainable software with a focus on clarity and frugality.
| 1 | Philosophy |
| 2 | ========== |
| 3 | We are the home of quality software with a focus on simplicity, clarity and |
| 4 | frugality. Our philosophy is about keeping things simple, minimal and usable. |
| 5 | We believe this should become the mainstream philosophy in the IT sector. |
| 6 | Unfortunately, the tendency for complex, error-prone and slow software seems to |
| 7 | be prevalent in the present-day software industry. We intend to prove the |
| 8 | opposite with our software projects. |
| 9 | |
| 10 | Our project focuses on advanced and experienced computer users. In contrast |
| 11 | with the usual proprietary software world or many mainstream open source |
| 12 | projects that focus more on average and non-technical end users, we think that |
| 13 | experienced users are mostly ignored. This is particularly true for user |
| 14 | interfaces, such as graphical environments on desktop computers, on mobile |
| 15 | devices, and in so-called Web applications. We believe that the market of |
| 16 | experienced users is growing continuously, with each user looking for more |
| 17 | appropriate solutions for his/her work style. |
| 18 | |
| 19 | Designing simple and elegant software is far more difficult than letting ad-hoc |
| 20 | or over-ambitious features obscure the code over time. However one has to pay |
| 21 | this price to achieve reliability and maintainability. Furthermore, minimalism |
| 22 | results in reasonable and attainable goals. We strive to maintain minimalism |
| 23 | and clarity to drive development to completion. |
| 24 | |
| 25 | Manifest |
| 26 | -------- |
| 27 | Many (open source) hackers are proud if they achieve large amounts of code, |
| 28 | because they believe the more lines of code they've written, the more progress |
| 29 | they have made. The more progress they have made, the more skilled they are. |
| 30 | This is simply a delusion. |
| 31 | |
| 32 | Most hackers actually don't care much about code quality. Thus, if they get |
| 33 | something working which seems to solve a problem, they stick with it. If this |
| 34 | kind of software development is applied to the same source code throughout its |
| 35 | entire life-cycle, we're left with large amounts of code, a totally screwed |
| 36 | code structure, and a flawed system design. This is because of a lack of |
| 37 | conceptual clarity and integrity in the development process. |
| 38 | |
| 39 | Code complexity is the mother of bloated, hard to use, and totally inconsistent |
| 40 | software. With complex code, problems are solved in suboptimal ways, valuable |
| 41 | resources are endlessly tied up, performance slows to a halt, and |
| 42 | vulnerabilities become a commonplace. The only solution is to scrap the entire |
| 43 | project and rewrite it from scratch. |
| 44 | |
| 45 | The bad news: quality rewrites rarely happen, because hackers are proud of |
| 46 | large amounts of code. They think they understand the complexity in the code, |
| 47 | thus there's no need to rewrite it. They think of themselves as masterminds, |
| 48 | understanding what others can never hope to grasp. To these types, complex |
| 49 | software is the ideal. |
| 50 | |
| 51 | Ingenious ideas are simple. Ingenious software is simple. Simplicity is the |
| 52 | heart of the Unix philosophy. The more code lines you have removed, the more |
| 53 | progress you have made. As the number of lines of code in your software |
| 54 | shrinks, the more skilled you have become and the less your software sucks. |
| 55 | |
| 56 | Related links |
| 57 | ------------- |
| 58 | * [The Duct Tape Programmer](http://www.joelonsoftware.com/items/2009/09/23.html) |
| 59 | * [Why should I have written ZeroMQ in C, not C++](http://www.250bpm.com/blog:4) |
| 60 | * [Best practices in application architecture: Use layers to decouple](http://geekandpoke.typepad.com/.a/6a00d8341d3df553ef014e5f920093970c-pi) |
| 61 | * [Facebook's code quality problem](http://www.darkcoding.net/software/facebooks-code-quality-problem/) |
| 62 | * [Minimal Viable Programs](http://joearms.github.io/published/2014-06-25-minimal-viable-program.html) |
| 63 | * [Why I Write Games in C](http://jonathanwhiting.com/writing/blog/games_in_c/) |
| 64 | * [Use of command-line tools for effective data processing](https://adamdrake.com/command-line-tools-can-be-235x-faster-than-your-hadoop-cluster.html) |