In 1942, Isaac Asimov formulated three laws of robotics. 58 years later, Jef Raskin responded with three laws of human-computer interface design. They haven’t been bettered yet. There are rules, and even laws, about designing computer user interfaces. Even after 35 years of Linux, which has brought Unix to the masses, the FOSS world has not yet really grasped this. In the meantime, the proprietary software world is busily forgetting everything it once knew. Sometimes these rules surface today, and the FOSS folks often get very cross when reminded that they’re user-interface scofflaws. Marcin Wichary’s recent blog post, They had no concept of a duty of care to their users, is an excellent recent example. (The Reg FOSS desk much admires Mr Wichary’s writing, to the extent that we bought his history of the keyboard, Shift Happens.) In his latest post, Wichary refers to CHERI Project boffin David Chisnall. Chisnall is a long-term Vim user – we all have our failings – and recently recounted trying NeoVim. He uses Vim’s persistent-undo feature, which records changes in a separate directory, so that you can repeatedly undo until you get back to changes you made weeks or months earlier. He’s customized where it’s kept, and when he tried the NeoVim fork, it overwrote his Vim undo file. In a later update to his post, he acknowledges that there was a warning, but he expected it to be safe. It was not safe. It overwrote records of more than a decade’s worth of changes. As he puts it: “Vim has kept this working across major version upgrades over a period of about 20 years. I don’t even think about it, it’s just part of Raskin’s First Law: A program may not harm a user’s data or, through inaction, allow a user’s data to come to harm. If vim or the computer crash, or if I close a file and come back to it six months later, my undo history is still there.” Wichary expands Chisnall’s citation of Raskin’s first law by giving all three, but just in case you’re not a follower of “Golden Age” science fiction, a little context. Asimov introduced his three laws in a short story called “Runaround”, in Astounding Science Fiction magazine* in May 1942. (The story was later collected in the anthology I, Robot – which is nothing like the terrible 2004 film.) A robot may not injure a human being or, through inaction, allow a human being to come to harm. A robot must obey the orders given it by human beings except where such orders would conflict with the First Law. A robot must protect its own existence as long as such protection does not conflict with the First or Second Law. Asimov’s idea was that by setting these rules, he could end the terrible genre of killer-robot stories that was already tired and stale by 1942. Jef Raskin, the lead designer of Apple’s original Macintosh project, attempted to bring similar clarity to software UI. Raskin’s three laws are: A computer shall not harm your work or, through inaction, allow your work to come to harm. A computer shall not waste your time or require you to do more work than is strictly necessary. An interface is humane if it is responsive to human needs and considerate of human frailties. He defined them in his 2000 book The Humane Interface, which you can still buy, or borrow from the Internet Archive. Sadly, Raskin died in 2005, but we have written about his work and his influence several times. He did set some of the direction of the original Macintosh. After Steve Jobs was booted off the Lisa, he took over the Macintosh – as described in The Canon Cat and the Mac that Steve Jobs killed. Raskin quit, and instead designed the remarkable Canon Cat, as we described a couple of years ago. We suspect Raskin was not a fan of Vi, the forerunner of Vim. We aren’t either, which is why we chose the year in the headline of this story: it’s the year Bill Joy wrote vi. Raskin criticized modal software, which requires extra mental effort from the user. So did another UI pioneer, the late great Larry Tesler, who invented the cut/copy/paste trio of commands. Tesler was known for his dictum “Don’t mode me in!” and even had a car license plate reading “NOMODES.” Dr Chisnall has some history of upsetting Unix fans – we’ve referred to one of his papers before: in 2018, he wrote C Is Not a Low-level Language: Your computer is not a fast PDP-11. Unix fans really didn’t like this. This vulture has been told to kill himself for daring to criticize C before now. (We wish we were joking, but no.) Although he has now updated his Mastodon post, the NeoVim fans are not happy. Indeed, one has lambasted this vulture on Bluesky for sharing Wichary’s post. It is interesting to note that NeoVim is the recommended editor in Omarchy, and until recently, the NeoVim developers cited a tweet from DHH on the project website. After an acromonious debate, the pull-quote was removed right around the time of Chisnall’s and Wichary’s posts. In the wide world of software design, we don’t expect the right-wing edge of that community to innovate much in ease of use. In a way, Unix and C embody a machismo infused school of software design: that of enjoying the process of mastering things which are hard to use. However, there are other types of software. We recently enjoyed reading about emulating an original Macintosh on a £0.60 chip. That’s $0.80 and of course the computer is a Raspberry Pi – but not even a Pi Zero: it’s a Pi Pico, a microcontroller. There is still some hope that the world can rediscover tiny, simple, user-centric software, built to be friendly first, and for rich functionality second. And, it almost goes without saying, hand-coded without bot assistance. Bootnote * Astounding magazine changed its name to Analog in 1960, and it’s still around. We recommend it. If you haven’t read Asimov’s original “Runaround”, that issue of Astounding is on the Internet Archive too. ®
source https://www.theregister.com/software/2026/10/04/revive-raskins-3-laws-of-software-with-humane-work-that-considers-a-devs-duty-of-care/5300539
Kubernetes CrashLoopBackOff: A Practical Debugging Playbook
-
[image: Kubernetes CrashLoopBackOff: A Practical Debugging Playbook]
*CrashLoopBackOff* is one of the first pod states every Kubernetes operator
learns to ...
2 months ago

0 comments:
Post a Comment