summaryrefslogtreecommitdiff
path: root/docs/suckless.org_philosophy.txt
blob: 58f1ed701e86b63dfc6deff179cb76d3095a8c67 (plain)
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/