[TUHS] V9 shell [was Re: Warner's Early Unix Presentation]

Jon Steinhart jon at fourwinds.com
Wed Feb 12 04:26:51 AEST 2020

Steffen Nurpmeso writes:
> Rob Pike wrote in
> <CAKzdPgz6qPuqOfTe4eLqmM4f4RXTxqWRO-3NLHTaMxJg7mT-Nw at mail.gmail.com>:
>  |My general mood about the current standard way of nerd working is how \
>  |unimaginative and old-fashioned it feels. There are countless ways \
>  |we could be interacting with our terminals, editors, and shells 
>  |while we program, but for various sociological and historical reasons \
>  |we're pretty much using one from decades ago. I'm sure it's productive \
>  |for almost everyone, but it seems dull to me. We could be 
>  |doing something much more dynamic. I mean, xterm is hardly more sophisti\
>  |cated than the lame terminal code that ran in mpx (ca. 1982), other \
>  |than colors and cursor addressing, which date from the 1960s 
>  |via early PCs. IDEs don't sing to me, although they are powerful, because \
>  |they don't integrate well with the environment, only with the language. \
>  |And they are just lots of features, not a coherent 
>  |vision. No model to speak of.
>  |
>  |Compare what happened with our shell windows with what happened with \
>  |our "smart" phones in the last 20 years and you'll get some inkling \
>  |of what I think we're missing. It's not that we should program the 
>  |way we use iPhones, but that there are fields where user interface \
>  |work has made a real different recently. Not so in programming, though. \
>  |We're missing out.
> I cannot imagine any other real step forward but control-by-
> thought, aka brain computer interfaces.  (I personally am even
> convinced we will get the brain implant -- ever since i got all
> those B and C Hollywood movies from the 50s wrong, back when i was
> a kid.  It is convincing still, automatic emergency calls, health
> record and cases of incompatibility at hand when needed, and not
> to talk about the hints it will give the law enforcement side of
> the road.)
> Just last year i have seen a report on the current stage of
> affairs, Carnegie-Mellon and Minnesota Universities seem to have
> build a non-invasively controlled robotic arm, pretty high
> precision.
>   "Wir haben erhebliche Fortschritte im Bereich
>   Robotervorrichtungen mit Gedankensteuerung über Gehirnimplantate
>   gemacht.
>   We have made substantial progress in the region of
>   thought-controlled robotic devices via implants.
>   Das ist hervorragende Forschungsarbeit", sagt He.
>   "That is superb research work", says He [Professor Bin He,
>   Carnegie-Mellon].
>   "Nichtinvasiv ist jedoch unser ultimatives Ziel.
>   Fortschritte in der neuronalen Dekodierung und der praktischen
>   Auswirkungen auf die mögliche Entwicklung nichtinvasiver
>   Nutzbarkeit nichtinvasiver Roboterarmsteuerung werden erhebliche
>   Neurorobotik haben."
>   "Albeit non-invasive is our ultimate goal.
>   Progress in neuronal decoding, and the practical usability of
>   non-invasive control of robotic arms will have substantial
>   effect on the possible development of non-invasive
>   neuro-robotics."
>  |But I'm a grumpy old man and getting far off topic. Warren should cry, \
>  |"enough!".
> I personally would love it, if it where only in the hands of
> empathic beings, capable of reflection.  Yet it is us. ^_^
> --steffen

Well, I'm gonna give my two cents on this before Warren tells us that it's off-topic :-)

One way to look at it is that there are two stages to programming or any
other problem-solving discipline.  First, clearly express the problem.
Second, implement a solution.

There's been a lot of improvement in both of these areas during my lifetime.

Especially when I look at the "everybody must learn to code" movement I see
people looking for a magic bullet; they just want to think of something and
have it magically appear.  Problem is that the thinking of something isn't
that easy.  People want DWIT (do what I think), a step beyond DWIM :-)

I'm reminded of the awful virtual reality panel at SIGGRAPH some decades ago
now where people stood up and said "with virtual reality there will be no
misunderstanding and people will be able to know exactly what you're thinking."
My response was "wow, if people knew exactly what you were thinking they'd kill
you."  The fuzziness of our brains is an asset here, not a liability.  So I'm
not thinking that translating thoughts directly into programs is a good thing.

All that said, there is an area that I think needs some work, which reminds me
that I wrote Tamara Munzner at UBC about this and need to ping her again.  My
current troublemaking project is to make an unfortunately necessary change to
linux to accomplish something that I want to do.  Because I haven't mucked
around in the kernel before I've been keeping notes as I try to figure it out;
sort of a travelogue.

One of the things that's important to me is writing code for the reader, not
the writer.  Being old, I remember working for companies where there was
warranty support for products, and that maintenance and support cost way more
than development.  So I've always written code for the maintainers because I
never wanted to become one because nobody could figure out my code.

Oh, Jon's rambling here, how is this relevant?  Something that I never gave
much thought about until I was a reviewer for Tamara's book is that my coding
style tries to maximize the brain's pre-attentive mode.  A lot of hunting
around in code involves visually scanning for patterns (vgrep), and one would
like to be able to do that in fixed time as opposed to linear time.

In my opinion, the linux code sucks at this.  The coding style of breaking up
functions to keep the number of indent levels low has what I'm calling poor
"meatspace locality of reference."  People have caches too, and we'd never
write code for a computer that thrashes as badly as code written for people.

Anyway, what I've been wondering about is whether anybody has examined the
UIs of different IDEs from a pre-attentive standpoint.  One of the weird
things about how our brains manage pre-attentive mode is that there are only
a handful of things that we can do in that mode before popping out, and that
those things have weird interactions.  So, for example, does coloring things
work?  Does bracket matching work?  Do they still work if you do both?  A
good thesis topic for someone younger than me.


More information about the TUHS mailing list