Sat, 1 Jun 2024 10:28:15 -0500Ergonomics

mr's Preposter.us Blog

KI’ve been thinking a lot the last few days about what the programming equivalent of the Braun ET66 might look and feel like.  

image0.jpeg

The qualities of the Braun’s design has been thoroughly described elsewhere so I won’t go too far into that here other than to say that you really need to work with the thing to fully appreciate just how good it is.

There are probably millions of calculators that can do the same things the Braun can do, many can do much more and most are easier to find and less expensive.  On these merits alone it doesn’t make sense that anyone should choose the Braun over the others, and in truth most people don’t.  But most of these people have never used the Braun, and those who have tend to stick with it.

So what does this have to do with programming?  For a long time the work of making better computers was engineering-oriented, but as more people started working with them, there were efforts to make the computer accommodate the people instead of the other way around.  Programming languages themselves are a form of this accommodation.  In the last few decades there has been an increasing focus on this accommodation for people who write software, but there has always been a tension between making the computer fit the person and making the most out of the computers resources.

I think this tension comes from a few places but I think most of it can be relieved by choosing better abstractions or …partitions(?) in the system.  I think it’s possible to provide uncompromising ergonomics while at the same time minimizing or eliminating the engineering compromises that have become common in contemporary languages, frameworks, etc.

To do this requires a wholistic approach and a deep understanding of the entire system, along with a willingness to fearlessly change anything that interferes with the objective.  If we do this, I think we can create a software development experience that has the uncompromising comfort and pleasure of working with a device like the ET66.

An experience like that might create an explosion of new and wonderful software, because most of the tools we use today provide a much more unpleasant experience.  The physical and emotional cost of these experiences takes a toll not only on the people who build these systems but to the people who use them as well.  Furthermore the engineering compromises come with a cost as well not only in financial form, but also in the form of ecological destruction associated with unnecessary excessive use of energy, space and other natural resources.