Thursday, April 12
My problem with GUIs is that they all blow chunks.
That is not to say that I believe this to be inherent. However, contemporary GUIs are all too obviously created to allow the user to carry out just those operations that the GUI designer foresaw.
Commandline interfaces and text editors for heavy lifting such as vi and Emacs, on the other hand, are rather abstract. They offer powerful and generic tools for manipulating text streams, leaving it up to the user to combine these tools into a chain of actions that accomplishes his task. This way, given tools free of artificial restrictions, it is possible to achieve effects never foreseen by the authors of any of the tools involved.
Artificial systems are everywhere, right? In the sense of classificatory
apparatus? Yeah, I know
classificatory is an appalling word, but it
stuck in my head the first time I ever read the phrase
Yesterday I had this moderately useful moment of recognizing that broken schemata and bad abstractions are just everywhere. This isn't uniquely, or even especially, a software problem. It's just that thinking about software - or, god help you, actually using most of it for a non-trivial task - sure brings it out in sharp relief.
Human thinkers have a staggering capacity for bad empiricism. Think about design. Think about education, religion, philosophy, and the available categories of political classification. Or the actual process of science, even in fields with a tight coupling to bedrock physical quantities.
As a species, it seems like we always try first to make the data fit the model. In fact, we go to endless lengths to avoid substantially revising or discarding a bad model. It causes us tremendous pain - whether the model in question is a religion, a piece of physics, or something as (apparently) trivial as a programming language.
I think this tendency may be, after sex and death, the third essential component of the human tragedy.