Progress, tools & two cultures

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

We hear about new smartphones, new computers, new versions of applications, and the list of progressions never ends. But my view is that sometimes we confuse noise with signals.

Exactly what is getting better and how do we know this is so? Is a new feature a relevant improvement? So relevant we have to speak about it? 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 or performance, comfort, aesthetics we do so according to a standard.

In general, such statements are valid. But I for one, think it would mean Progress if we produced 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. Better still, would naturally be if engineers came up with solutions so we could make environmental vehicles, low cost – available for many.

Progress is and will always be a very vague notion.

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 before. We have the numbers and benchmark to prove it, and so on. What does this mean? What are we supposed to feel about the increase in performance? Does it affect us? Do we even notice it? Should we? Is it an important change?

Still, when we see the numbers we are impressed. Numbers affect us more than they should.

This not said as a critique of numbers. But generally, we are very 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. To some extent, we choose how we feel about facts like the decrease of starvation.

Even though mixed feelings arguable is 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. I am often guilty of feeling and thinking in black and white, and so are you. If we are true to ourselves, we know this to be true.

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 40 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 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 do to a task more fitted for a knife, it would perhaps be possible - but it would arguable take more time and the instrument would face the risk of breaking.

I am no expert Unix user nor an expert in modern programming environments, but 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 wholehearted.

We should get better at mixing these cultures, I believe. 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.

Supporting limited Vim-plugins and a console window is not what I mean, And I can't be more precise about it since no real mix of these cultures exist, as far as I know.

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 laugh 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? If so, I think it is a bad situation.

Sometimes I am guilty of such views, but so are you, so are all people.

Usually, though, I think programmers are very curious by nature.

Programmers enjoy learning new technologies, and even though we temporarily have favorite ways of solving issues, we tend to keep learning.

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?

We can use technology to end humanity, but I don’t think we can use it to save humanity. Humans don’t even have the power to destroy the environment; it will be the environment that destroys us. Perhaps we can use technology to saving us from the environments destroying us?

What technology? I don’t know.