Okay terminal emulators need to go. And there are replacements these days. Some are better than others. But dang it they just don’t seem to catch on.
I don’t value debug-ability as highly as he does. I find that once you have a program with shared mutable state and concurrent or parallel threads, debugging loses its utility. I much prefer being able to reason about my programs in a principled way than trying to figure out how my program failed by piecing things together from debugger output. I’ve also had a pretty long career and have done both and arrived at almost the opposite conclusion: both are good but I prefer correct by construction, static type systems, and proofs.
I guess that makes us necromancers? Raising and keeping dead languages moving and doing out bidding?
It would be neat to have an image-based runtime like Commmon Lisp or Pharo (SmallTalk) while the language is statically typed in a rich system like Lean that can generate optimal native machine code and GPU shaders, etc. A fast, interactive theorem prover is also a must. If I’m gonna have my cake and eat it too might as well go all in.
What is stopping you from working on this?
Do you have a short list for the better of these replacements?
On Plan9 Sam and acme... heck most programs didn't have to emulate character-based terminal emulators. They could drop into a graphical mode if they wanted to.
Amiga OS applications were similar.
One I've been using more often is built into emacs, eshell. It can quite handily use emacs functions to create windows, draw graphics, evaluate elisp I type in or interpret shell commands, pipe shell command results into buffers, etc. But it doesn't emulate VT100 consoles... if you use a program that tries to use those escape sequences to control the output device it won't work well (or at all) in eshell.
Which is why I don't think they catch on. Too many useful programs or libraries programs depend on are built around termios and VT100 escape sequences to control a character-based interface. Coming up with a standard for graphical interfaces would just add another standard to the pile. And would probably have to be VT100 compatible for people to adopt it anyway. There'd be a lot of uphill battles to fight.
update: my knowledge of Console is pretty hazy though, take with a grain of salt. Maybe someone with win32 experience remembers better than I.
My personal goal here is to be able to write my programs by synthesizing them from proofs that I write by hand. Whether that is on a special device like an eInk reader or on a whiteboard; my work carries around with me where I choose to take it. I would love a world where my physical attention isn't focused on a glowing box with graphics designed by some company in Palo Alto or Cupertino who is designing for mass audiences with profits motivating every decision (and change). Why even hard-wire ourselves to the physical legacy of terminals?
There are plenty of humans who aren't even afforded access to modern computers in manners that are convenient to them and respect their abilities and capacities! The entire design of modern computing is centred around able-bodied, able-minded "mass-market" people -- whatever that is.
It's frustrating that any other mode of computing is an after-thought, an inconvenience, and attached to these machines in order to meet people where they are. Often times the answer is simply, "Nope, sorry."
Particularly inspired by: DynamicLand, https://screenl.es etc
DynamicLand reminds me of early Logo where there was a physical "turtle" robot that kids programmed to draw on paper!