1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
[1]suckless.org - software that sucks less
__________________________________________________________________
[2]home [3]dwm [4]st [5]core [6]surf [7]tools [8]libs [9]e.V.
[10]download [11]source
__________________________________________________________________
* [12]about
* [13]coding style/
* [14]community/
* [15]conferences/
* [16]donations/
* [17]faq/
* [18]hacking/
* [19]other projects/
* [20]people/
* [21]philosophy/
* [22]project ideas/
* [23]rocks/
* [24]sucks/
* [25]wiki/
__________________________________________________________________
Philosophy
We are the home of quality software such as [26]dwm, [27]dmenu, [28]st
and plenty of other [29]tools, with a focus on simplicity, clarity and
frugality. Our philosophy is about keeping things simple, minimal and
usable. We believe this should become the mainstream philosophy in the
IT sector. Unfortunately, the tendency for complex, error-prone and
slow software seems to be prevalent in the present-day software
industry. We intend to prove the opposite with our software projects.
Our project focuses on advanced and experienced computer users. In
contrast with the usual proprietary software world or many mainstream
open source projects that focus more on average and non-technical end
users, we think that experienced users are mostly ignored. This is
particularly true for user interfaces, such as graphical environments
on desktop computers, on mobile devices, and in so-called Web
applications. We believe that the market of experienced users is
growing continuously, with each user looking for more appropriate
solutions for his/her work style.
Designing simple and elegant software is far more difficult than
letting ad-hoc or over-ambitious features obscure the code over time.
However one has to pay this price to achieve reliability and
maintainability. Furthermore, minimalism results in reasonable and
attainable goals. We strive to maintain minimalism and clarity to drive
development to completion.
Manifest
Many (open source) hackers are proud if they achieve large amounts of
code, because they believe the more lines of code they've written, the
more progress they have made. The more progress they have made, the
more skilled they are. This is simply a delusion.
Most hackers actually don't care much about code quality. Thus, if they
get something working which seems to solve a problem, they stick with
it. If this kind of software development is applied to the same source
code throughout its entire life-cycle, we're left with large amounts of
code, a totally screwed code structure, and a flawed system design.
This is because of a lack of conceptual clarity and integrity in the
development process.
Code complexity is the mother of bloated, hard to use, and totally
inconsistent software. With complex code, problems are solved in
suboptimal ways, valuable resources are endlessly tied up, performance
slows to a halt, and vulnerabilities become a commonplace. The only
solution is to scrap the entire project and rewrite it from scratch.
The bad news: quality rewrites rarely happen, because hackers are proud
of large amounts of code. They think they understand the complexity in
the code, thus there's no need to rewrite it. They think of themselves
as masterminds, understanding what others can never hope to grasp. To
these types, complex software is the ideal.
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.
Related links
* [30]The Duct Tape Programmer
* [31]Why should I have written ZeroMQ in C, not C++
* [32]Best practices in application architecture: Use layers to
decouple
* [33]Facebook's code quality problem
* [34]Minimal Viable Programs
* [35]Why I Write Games in C
* [36]Use of command-line tools for effective data processing
References
Visible links:
1. https://suckless.org/
2. https://suckless.org/
3. https://dwm.suckless.org/
4. https://st.suckless.org/
5. https://core.suckless.org/
6. https://surf.suckless.org/
7. https://tools.suckless.org/
8. https://libs.suckless.org/
9. https://ev.suckless.org/
10. https://dl.suckless.org/
11. https://git.suckless.org/
12. https://suckless.org/
13. https://suckless.org/coding_style/
14. https://suckless.org/community/
15. https://suckless.org/conferences/
16. https://suckless.org/donations/
17. https://suckless.org/faq/
18. https://suckless.org/hacking/
19. https://suckless.org/other_projects/
20. https://suckless.org/people/
21. https://suckless.org/philosophy/
22. https://suckless.org/project_ideas/
23. https://suckless.org/rocks/
24. https://suckless.org/sucks/
25. https://suckless.org/wiki/
26. https://dwm.suckless.org/
27. https://tools.suckless.org/dmenu
28. https://st.suckless.org/
29. https://tools.suckless.org/
30. http://www.joelonsoftware.com/items/2009/09/23.html
31. http://www.250bpm.com/blog:4
32. http://geekandpoke.typepad.com/.a/6a00d8341d3df553ef014e5f920093970c-pi
33. http://www.darkcoding.net/software/facebooks-code-quality-problem/
34. http://joearms.github.io/published/2014-06-25-minimal-viable-program.html
35. http://jonathanwhiting.com/writing/blog/games_in_c/
36. https://adamdrake.com/command-line-tools-can-be-235x-faster-than-your-hadoop-cluster.html
Hidden links:
38. https://suckless.org/
|