The Notion of Progress and User Interfaces

One trait of modern Western culture is the notion of progress. A view claiming, at large, everything is getting better and better.

How should we think about progress? Both in general and regarding technology?

In some areas the claim of progress arguable is true. We acknowledge that more people than ever in history have food and water and access to education, basic medicine, and health-care.

We have good reasons to be worried about the implications of technology, social media, a sedentary way of life but we just the same have good reasons to see how much good technology has done and is doing.

Especially when thinking about the Web, we should get better at thinking of the state in dialectical terms, as a balance where good and bad will always be present and the aim is to keep the weight and the tipping point on the right side.

What is progress and what is not is a very complicated question. When we speak about software applications we are more naive than in other areas. This is at least my feeling that we seldom question the progress claim of modern software.

There are important differences. No one can deny that the performance of the technology in general and computers, in particular, has increased. But how about how we use computers? And what about our user interfaces?

Is it true we are making progress? I don't know. Microsoft and Apple made the Graphical User Interface mainstream influenced by ideas from Xerox PARC (who in turn was inspired by this). But some say important aspects were lost and forgotten in this process. Most notably Alan Kay, but also Bret Victor and many others.

If you only know the standard history writing and have recollections from your youth in the 90-s and remember Windows 3.1 you will be surprised to see this Smalltalk interface from 1976:

Or why not Acme of Plan9? Watch a tour of the application and you have good reasons to disbelief that modern GUI:s for programmers by default is better in all areas.

Even though we have more powerful features in our modern GUI:s, are they as thought through in terms of UX as this interface?

More and more I think while we, without doubt, improve our applications generation by generation, some workflows and modern UIs are more primitive than the interfaces of old such as Unix systems of the 1970s, or the graphical environments like those of Xerox PARC.

While features improve, I sometimes get the feeling that the overall philosophy of applications and the implicit consequence of this philosophy and how it is materialized in concrete GUI:s today all to often are commercialized. And there is a difference between making money and commercialization, in a sense.

New software philosophy contrasts with the philosophies of the elders in the hacker culture. They had simple but powerful ideas and made those ideas come alive in software. This is why some of the applications of the 70s are still used, with small modifications surely but essentially the same.

If this will not be true for the applications we make today, can we speak about progress? Mind we are not speaking about specific features, but interface in a much wider sense.

We must separate new features from the core of applications, interfaces. Adding more powerful features for programmers to WebStorm, Atom or VS Code doesn't make the interface as such more powerful. One more problem can be solved, but nothing important in how we work is changed. Nothing in how we think has changed. Interfaces in this sense are about possibilities and means of combination.

But in Vim, knowing a small set of keys and the means for combinations (say 30 elements), we can produce hundreds of effects. This is possible with a clever means of combination. Compare this with the specific key-bindings of other applications and the power of the user interface of Vim shines.

Who says things intuitive need to come easy? Immediate understanding of an interface is separated from an intuitive design, a design which in theory can take a long time to master. This is also how intuition has been used for a very long time.

In modern civilization, we sometimes forget this is how people before us have thought about things being 'intuitive'. A small child can't read, but should we then consider letters to be un-intuitive? Bret Victor writes asks a similar question in Magic Ink. Information Software and The Graphical Interface,

Some people claim that no interface can be fundamentally more “intuitive” than another, because intuition is simply a result of familiarity. But surely these people were parsing and producing complete sentences long before they could manage a dialog box. The human brain does have some hard-wiring.

In fact, much of the old discussion related to the notion of Bildung relates to the term intuition. Bildung is only secondarily about knowledge, and primarily about 'resistance'.

Bildung is traditionally thought of as Sisyphean work. No one can in a sense have Bildung in general in this view, only to a degree and under special circumstances, cultivating and replacing bad forms of intuition with better ones. This is perhaps why Bildung and the modern scientific process emerged in the same time frame.

When you just do things, you have an intuitive environment. But this says nothing about your prior knowledge. In Vim you have to know how to combine elements, but with this knowledge, you can intuitively (just like letters and the knowledge on how to read) perform quite specific tasks. If you know that c stands for change and $ end of line, you just do 'change until end of line' (it's an expected consequence of combining the elements, c$ ). You don't need to look it up. It just works. The means to combine make Vim more intuitive than most modern UIs, I think.

If Unix and related interfaces where about snobbery, we should throw them overboard. Actually, this we would have done long ago. This is generally what happens with old applications with the advent of some new, better application.

I want us to go forward, I want us to progress. In progress, we must admit failure and iterative take steps 'back' and have another try. Some (what do I know? most?) modern applications have fantastic user interfaces. But sometimes I feel we have lost some things that should not have been forgotten. We can do better. And even when we do good, we should attempt to do better still.