The Mouse Programming Language on CP/M
18 points by spc476
18 points by spc476
It does sometimes seem to me that there is a spectrum of readability in programming languages, and at one extreme, there are several which are very powerful and capable, but achieve it by being almost totally unreadable.
As per Michel's observation in Red Mars (by Kim Stanley Robinson), it's usually easier to understand what's going on with any A <--> B scale by considering it as a rectangle with 2 axes: A/B and X/Y or whatever. That's why I said a spectrum not a scale. As per Hans Eysenck's political spectrum the left/right axis makes much more sense on an authoritarian/democratic and radical/conservative scale.
I'm not proposing one here. I haven't worked it out yet. I'd love it if any Lobsters have suggestions or ideas.
But some points on it are:
I feel like there's also a difference between languages that become readable when you learn them, and languages where they are unreadable even if you're an expert.
Yes, good point.
There's a lot of anecdata about this. Some people find Lisp beautiful:
It is written in Lisp, which is the only computer language that is beautiful.
But for a lot of us, me very much included, find its prefix notation really hard to follow, and of course there are a jokes old and (relatively) new.
Acolytes of the Unix religion think C is readable to the extent that it's similarly a joke to outsiders:
C syntax is magical programmer catnip. You sprinkle it on anything and it suddenly becomes "practical" and "readable".
It's not called a write-only programming language for nothing.
Only sort of related, but how the "language" part fits into its wider computing environment should also affect the readability/writability dichotomy. For example, HyperTalk is much much easier to read than it is to write -- that is on purpose, and to its advantage. This is because the HyperCard environment was designed such that people could "open the hood of the car" and poke around inside to get a sense of how things work. One wasn't always or only scripting in order to "author" a stack, so intermittent engagement with code makes readability more important. And as a last point, because one could "program" the stack using the GUI in addition to writing scripts (doing so would write the script for you), readability becomes extra important for later inspection of the script if needed.
Confusing terminology: the macro parameters seem to be runtime values, with macros behaving like procedures or functions, yet they are called macros. Is that an idiosyncrasy of the original designer, or is there some unexplained technicality that makes the macros match closer with their name?