]> git.llucax.com Git - personal/website.git/blob - source/blog/posts/2016/04/02-simplicity.rst
blog: Publish post about LANGUAGE
[personal/website.git] / source / blog / posts / 2016 / 04 / 02-simplicity.rst
1 Title: Simplicity
2 Tags: simplicity, en
3
4 This is mostly an article I want to save for myself about simplicity. It was
5 originally written by Mark Ramm in the context of a Python web framework I used
6 (TurboGears). The original article seems to be gone, but you can still `find it
7 in the Archive.org's Wayback Machine
8 <https://web.archive.org/web/20120913081139/http://compoundthinking.com/blog/index.php/2006/05/31/what-is-simplicity/>`_.
9
10 Here is a transcription:
11
12   | **What is Simplicity?**
13   | (May 31st, 2006 by Mark Ramm)
14
15   Simplicity is knowing when one more rock would be too many, and one less rock
16   would be too few. But it’s not just knowing the right number of rocks, it’s
17   also knowing which rocks are right, and how to arrange them.
18
19   As Brad reminds us, simplicity is not achieved merely by making something
20   easier, or less complex.
21
22   Take away all the complexity, all the difficulty, and all of the details from
23   anything and what you are left with is not simple: it’s just boring.
24
25   On the other hand, Simplicity embraces exactly the right details, the right
26   difficulties, the right complexity, but because everything is tied together in
27   the right way, you are left with a sense of clarity, and a sense that
28   everything belongs exactly where it is. Simplicity is achieved when everything
29   means something.
30
31   In other words, simplicity is defined by what you add — clarity, purpose, and
32   intentionality — not by what you remove.
33
34   For those of us who write software, simplicity is not a simple thing to learn.
35   Writing the TurboGears book and working with the amazing group of people who
36   contribute to the project has been a learning experience for me. Everybody is
37   focused on making the web development simpler — and it’s amazing how much
38   experience and depth of understanding is necessary to create a simple
39   interface. It’s easy to build an interface that solves 80% of the problem, or
40   an interface that solves 200% of the problem, but it is hard to solve just the
41   right problem, and to do it in a clean, clear, way.
42
43   Of course, every project has warts, and TurboGears re-uses other projects which
44   also have warts. So there’s no way I can say that TurboGears has arrived. But
45   the will is there, and the journey sure has been productive for me.
46
47 .. vim: set et sw=3 sts=3 tw=80 fo+=lt1n: