You may want to inform yourself about human rights in China.

On Simple Software: Unimpressiveness

date: 2022-07-23
update: 2022-12-21

This is perhaps one key characteristic of simple software. It’s humble, doesn’t look like much, its potential is not always easy to understand, nor is the underlying trade-offs balance.

The issue isn’t specific to software, but in fact arises in unrelated areas: simplicity tend to be overlooked, and to require a certain degree of mastery to be appreciated.

Simplicity is the ultimate sophistication.

– Leonardo Da Vinci


Chopsticks and forks

Take chopsticks for instance, and compare them to regular modern Western forks:

Japanese traditional meshi, ι£―. A red umeboshi (dried ume, ζ’…εΉ²,) is on top of white rice. This is also called “Hinomaru rice.” It symbolizes the “circle of the sun” of the flag of Japan.

Japanese traditional meshi, ι£―. A red umeboshi (dried ume, ζ’…εΉ²,) is on top of white rice. This is also called “Hinomaru rice.” It symbolizes the “circle of the sun” of the flag of Japan. by ζ―›ζŠœγ through wikimedia.org – CC-BY-SA-3.0

Dinner fork

Dinner fork by Fg2 through wikimedia.org – Public domain

More precisely, think about how much simpler a chopstick is, conceptually-wise, compared to a fork:Β simple enough to be of value even as an abstract object: one can easily craft a pair of chopsticks from some bits of vegetation. A fork on the other hand, even a wooden one, will be more challenging to build from raw materials: the concept itself is of lesser practical value.

Think also about how the tool’s simplicity demands more of its users: while a fork can be used intuitively in a rather efficient manner, however crude, chopsticks on the other hand require finer dexterity to be used as efficiently.

Then, think about how chopstick usage will contribute to polarize cooking (e.g. the use of glutinous rice), or how it will affect the psychological development of its users. To put it in computer science terms, there’s some kind of “cultural” leaky abstraction there.

There are also more practical, down-to-Earth advantages: chopsticks are easier to thoroughly clean, a small stick of wood offers a wide hacking surface (from unplugging a sink to ad-hoc tablemat), etc.

We’ll revisit such background influences in the context of software, in the following article.

Planes

Woodworking planes are another example that we can polarize East/West in some ways, and from which we can derive a set of similar thoughts. Let’s make a hardly fair comparison, but for the sake of making the point saillant:

A Stanley 55 “Universal Combination Plane”, allowing the combination of a wide variety of cutters (shown in the background), to perform various woodworking tasks, such as molding

A Stanley 55 “Universal Combination Plane”, allowing the combination of a wide variety of cutters (shown in the background), to perform various woodworking tasks, such as molding by mnemosine through wikimedia.org – Public domain

Takenaka Carpentry Tools Museum in Kobe, Hyogo prefecture, Japan. Archetypal Japanase plane, essentially made out of a piece of metal wedged into a single block of wood

Takenaka Carpentry Tools Museum in Kobe, Hyogo prefecture, Japan. Archetypal Japanase plane, essentially made out of a piece of metal wedged into a single block of wood by 663highland through wikimedia.org – CC-BY-SA-3.0

If you’re not familiar with such tools, I can’t but recommend to spend a moment learning about them; next time you’ll see a handcrafted piece of furniture, you’ll to appreciate it with greater depth:

As previously mentioned, the comparison is unfair: not only do the planes have different uses, but the Stanley 55 is far from being representative of the planes traditionally used in the West, which are closer to their Eastern counterparts, as in “a piece of metal wedged into a piece of wood”:

Collection of old carpentry tools in Mdina Cathedral Museum in Mdina, Malta

Collection of old carpentry tools in Mdina Cathedral Museum in Mdina, Malta by Karel Jakubec through wikimedia.org – CC-BY-SA-3.0

Still, the following points are quite remarkable regarding the Japanese planes: despite their apparent simplicity, everything has been carefully, holistically, designed:

And many more

We could keep going in many different ways, but this should be enough to get the main points across. I’ll leave a few traces for those willing to continue the thinking.

A small glass teapot, with a spiral tea filter made from a single piece of wire

A small glass teapot, with a spiral tea filter made from a single piece of wire by Palais des thΓ©s through palaisdesthes.com – likely, available for fair use

Exercice: Curious readers might want to ponder about the evolution of writing implements, clothings (say, toga vs. blue jeans), the evolution of cars from 60 years ago to today, or, jumping away from the old vs. new dichotomy, to think about the influence of the addition of the notion of zero to a numbering system, from algebraic point of view.

Why?

As we’ve already discussed, and as we’ll see in more detailed in a later article, similar patterns arise in computer science, where elegant solutions often look plain boring and uninteresting, at least at first sight. And not just boring, but sometimes painstaking, which will discourage, for better or for worse, lesser brave users.

The study of traditional approaches can also bring a few insights when it comes to understand why is software so bloated and generally ill-conceived. Among others:

  1. Woodworking (and plenty of other manual skills) have been passed-down for centuries, giving them time to flourish. By comparison, computer science is still in its infancy;
  2. Our society tend to under-value manual crafts, and value their systematic automatization; over a few generations, we lost the ability to appreciate the refinements that they demand, and are thus unable to be as exigent regarding computer science, and when we are, we aren’t always paying attention to what is really important;
  3. Computer science is matterless: when you mess up a piece of wood, it’s messed up, and you’ve got to live with it, but computer science, in the general case, gives you infinite undos;
Nanshoso, ε—ζ˜Œθ˜, in Morioka, Iwate prefecture, Japan.

Nanshoso, ε—ζ˜Œθ˜, in Morioka, Iwate prefecture, Japan. by 663highland through wikimedia.org – CC-BY-SA-4.0

  1. Since the beginning of modern computing, the monetary value of crude software is easily orders of magnitudes above having no software at all. Because poor software’s cost will manifest in the long-run, this can is likely to be overlooked, or misunderstood;
  2. Not really related to traditional views, but still important: once a piece of software goes public, people will start to depend on it, sometimes critically. As a result, changes will need to be backward-compatible, so as to avoid causing systemic issues: thus, interfaces can hardly be simplified once the software has reached enough momentum, and we have to live on with the complexity.

In the series:


Comments

By email, at mathieu.bivert chez:

email