On May 6, 2021, at 5:53 PM, Adam Thornton via cctalk
<cctalk at classiccmp.org> wrote:
...
Yes, that. C is a great assembly
language preprocessor for a PDP-11. The
PDP-11 is a beautiful, intelligible architecture, where things happen one
at a time in sequence. This is easy to think about. Unfortunately it's
got very little to do with the way that modern high-performance silicon
gets stuff done.
Sort of. But while a lot of things happen in parallel, out of order, speculatively, etc.,
the programming model exposed by the hardware still is the C sequential model. A whole
lot of logic is needed to create that appearance, and in fact you can see that all the way
back in the CDC 6600 "scoreboard" and "stunt box". Some processors
occasionally relax the software-visible order, which tends to cause bugs, create marketing
issues, or both -- Alpha comes to mind as an example.
(Aside: it's also weird that the
one-thing-at-a-time sequencing is the
thing that feels logical and intuitive to us since it is absolutely not how
our brains work.)
I would argue that Forth and Postscript are hard to understand for a
different reason than APL: APL is inherently vectorized, and requires, more
or less, that you treat matrices as single entities. Not many people's
brains work that way.
I wonder. Consider object oriented programming, where objects that have all manner of
stuff inside are treated as a unit and have operations performed on them.
Agreed on stack languages. While there's nothing inherently hard about them, they
don't fit the way we're taught to handle formulas all the way from grade one. In
fact, while APL is infix, it's right-associative, which is a definite problem.
It's unfortunate Iverson didn't fix the assignment operator problem the way POP-2
did, by pointing it to the right so all operators could be left-associative.
If Martin Rem's associons ever take off (see my previous email) that will require a
similar mental process as the one for APL of treating composite data as single entities.
paul