Software Tools

Do one thing well, and work together.

Kanso in Unix philosophy

leave a comment »


The Visual Resource Centre defines kanso succinctly.

simplicity; without gaudiness, not heavy or gross; clean, neat, and fresh, yet reserved, frank and truthful; not ornate or gaudy

Josiah Ramsay Johnston defines kanso in terms of a Japanese garden.

The second principle, Kanso, is a return to the simplicity of nature and the solitude of a mountain stream, as opposed to the ardent ornamentation of the already beautiful to the point of garrulity. The expression of natural order found in the Zen garden is a truthful expression of the creator’s vision of ideal reality, reserved in its statement, far from the ornate. Kanso means something fresh, neat, clean, but never fastidious. It is that form of cleanliness which grows from a cycle, from birth, life, and death, something which is clean because intervention in the garden is purely perceptive and the individual can view the garden in altering states of atmospheric condition, expecting the trees to be one autumn older each year, knowing the sunlight will hit the rocks under that one maple tree in a slightly different way the next summer evening one finds him or herself their. It insinuates blunt representation, never over embellished, but rather allowed to exist in the modicum of beauty in which it is found in the real world. Compositions based on the principle of Kanso are never aggressive in their call for examination, relying more on the beauty inherent in all things than the added floridity of many Western compositions. The Ryoanji garden, which will be discussed in greater depth later, is a perfect example of Kanso.


Doug McIlroy defined the Unix philosophy in part as "Write programs that do one thing and do it well."

Rob Pike discouraged complex algorithms.

Rule 3: Fancy algorithms are slow when n is small, and n is usually small. Fancy algorithms have big constants. Until you know that n is frequently going to be big, don't get fancy. (Even if n does get big, use Rule 2 first.)

Rule 4: Fancy algorithms are buggier than simple ones, and they are much harder to implement. Use simple algorithms as well as simple data structures.

Mike Gancarz collected common principles of the Unix philosophy.

Small is beautiful.

Make each program do one thing well.

Richard Gabriel considered simplicity most important for survival, and believed that Unix and C exemplified worse-is-better design.

Simplicity: the design must be simple in implementation and interface. However, it is more important for the implementation to be simple than the interface. Simplicity is the most important consideration in a design.

Eric Raymond believed that Unix followed the KISS principle, and set rules for simplicity.

Rule of Modularity: Write simple parts connected by clean interfaces.

Rule of Simplicity: Design for simplicity; add complexity only where you must.

Dennis Ritchie said "Unix is simple. It just takes a genius to understand its simplicity."

Plan 9

Plan 9, a Unix successor by several of its authors, avoided complex interfaces by hiding differences.

Resources as files: all resources are represented as files within a hierarchical file system.

Namespaces: the application view of the network is a single, coherent namespace that appears as a hierarchical file system but may represent physically separated (locally or remotely) resources.

Standard communication protocol: a standard protocol, called 9P, is used to access all resources, both local and remote.


Written by catena

1 May 2006 at 0210

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: