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