Progress, tools & two cultures


Wherever our eyes turn we are faced with Progress… or so the story goes.

We constantly hear about new smartphones, new computers, new versions of applications, and the list of progressions never ends. But could it be that we sometimes confuse noise with signals?

Exactly what is getting better and how do we know this is so?

Is a new feature a relevant improvement? Or are we being good consumers, tame and disciplined to feel that ‘feature X will fundamentally change things’? When is an improvement important enough to fundamentally change things, and when should we shut up and not risking to add further to the noise of consumerism?

If we say a car is better in terms of some environmental criteria, performance or comfort we do so according to a standard.

In general, such statements are valid. But we could also view progress as producing fewer cars, not more. In terms of saving civilization from catastrophe, zero cars, or only cars for functions necessary to sustain society and to some extent industry, would be a more reasonable metric of progress. Not X new features and a slightly more environmental car.

Progress is and will always be a very vague notion if spoken about without being precise about the context.

Even if we make use of a clear standard and relate a change to this standard, we tend to put more meaning into a presumed ‘progress’ than we by use of precise wordings can pin down.

A common mistake we all are guilty of is to move from a technical notion we can be precise about to an abstract, qualitative standard, without realizing we go from something definitive, perhaps even quantifiable, to something which by its nature is not very suitable for this format, a qualitative estimation.

Say we can perform a computation twice as fast as before, what does this mean? What are we supposed to feel about the increase in performance? Does it affect us? Do we even notice it?

Still, when we see the numbers we are impressed. Numbers affect us more than they should. Generally, as Daniel Kahnemann has shown, we are bad with numbers – and we treat them way too platonic. We believe them to be in a realm of their own, and they convey the truth about reality. What truth? Numbers that matters don’t stand for themselves, they are followed and impregnated with feelings, values, and morality.

Even though mixed feelings arguable in a balanced position concerning the decrease in starvation, we regularly either think about all humans world-wide who still die from starvation, or how many people more who survives in comparison with yesterday.

Sometimes we should question feelings of improvement, just as we should resist feelings of doom.

Having a better understanding of what instruments we need, for what reason we need certain tools, and how to use these instruments relate to important issues, but are altogether questions of another nature.

Regardless of field, some instruments seem timeless, more immune to the tooth of time. Those tools are robust in the best sense of the word.

Even though a modern carpenter most likely makes use of advanced tools, s/he will have a hammer in her or his belt. Even while a surgeon has advanced equipment to her or his disposal, s/he still uses a scalpel.

Some instruments of precision seem worthwhile to learn. In the context of computers, we have high-power precision instruments in the Unix hacker tools. They have been around for 50 years and are as useful now as when they emerged.

Just as surgeons use more advanced tools, we developers should too. But we face the risk of forgetting how to use the scalpel because we count on some semismart device doing the job for us. We are in this context, as in other contexts of our contemporary existence, threatened by noise.

When our modern programming environment doesn’t have a feature out of the box, we either wait for a future release or go low-tech and use hacker tools.

Today some people view hacker tools as part of nostalgia, a retro-trend among hipsters. Even though this is perhaps quite true, it is not a real argument against using hacker tools. Nevertheless, if hacker tools are similar to a scalpel it suffers the same weaknesses. I guess a scalpel takes time mastering, true at least for hacker tools.

But more importantly, the cost of precision is under some circumstances time. If we would use a scalpel due to a task more fitted for a knife, it would perhaps be possible - but it would arguably take more time and the instrument would face the risk of breaking.

Name a field in which a tool used doesn’t have merits and down-sides?

Sometimes two different tools, or sets of tools, can’t be ‘mixed’. Or so we think. This is arguable, not true for hacker tools and modern programming environments. Notwithstanding, today as far as I can see they never really meet wholeheartedly.

Perhaps we should get better at mixing these cultures? A programming environment of tomorrow I would want to use, take the best from the Unix world and mix it with modern programming environments such as VS Code or WebStorm.

Often user interfaces in science fiction movies are criticized for being stupid, I often like them. They are not meant to capture the exact nature of future user interfaces because these interfaces are unknown. When we see a 3d-mesh pyramid spinning in an old movie we’re amused and think ‘what’s the use of that’? Although, it is only supposed to capture something unknown, something we are supposed to regard as not being possible to understand.

Some believe very original inventions come from nowhere. When we study the history of ideas we know this is never is the case. If we look close enough we always see patterns emerge, connections between contemporary phenomena but also between old ones. We do invent things, but no invention comes from nothingness. Originality is equally something real and a myth, when we examine history.

Often when mixing two cultures, at first we are faced with issues, but in the end, we often see something stronger emerge. All cultures are in the end both unique and melting-pots of impressions of other and previous cultures.

When I look upon the world of programming environments, I sometimes feel that C.P. Snow, author of The Two Cultures and the Scientific Revolution from 1959, has something to say. Snow argued there was a divide between the natural sciences and the humanities and believed this state was bad for both cultures. Each culture quite ignorant of the other, both feeling superior. Even though we always find exceptions, isn’t this situation quite true in the world of programming? Unix purism vs modern UI purism?

Perhaps all tools we use now will be abandoned a decade from now. Perhaps programming will mean having a conversation with a semi-god AI according to a set of specified rules on what we want and need. Or perhaps it still means using formal languages to solve problems – a medium for concrete abstractions.

Will we ever fully comprehend reality with our technologies? The french (postmodern) philosopher Gilles Deleuze once asked, from what perspective, should we view eternity and wrote the beginning of the triangle of Pascal on a blackboard. Indeed, from what perspective? Where do we start? Is it random because we can start anywhere and reproduce ‘the same’ pattern?

Starting from anywhere and still providing a view requires flexible tools, composable tools. To this day I can’t think of tools more flexible than the Unix tools. But this does not mean they’re perfect, that anything can be done — will it ever?

About | Archive