> It is hard to have empathy for a problem you don't have.

I do not find this myself, and it is a standard part of the design of a lot of commercial software: intentionally thinking about disabilities, impairments, and difficulties, and working on accommodating people who struggle with these things.

Examples:

* GUIs that flash the screen to signify a bell sounding for deaf users.

* Keyboard-operated GUIs for users with motor or sensory impairments who can't use pointing devices. (Blind users can't see a mouse pointer so can't use one.)

* UIs with alternate colour schemes for people with colour-blindness.

It has long been a source of irritation for me that FOSS tools are so resisitant to implementing this.

> I have only recently become open to the idea that people might legitimately experience pain using an unfamiliar syntax.

Good gracious. That is a surprise to me.

I love the _idea_ of Lisp and have written about it at length, but I find it, and APL, and many other languages, impenetrable.

For ordinary non-technical people, "algebra" is a synecdoche for "something that is really hard to understand".

Algebraic notation is just about the maximum level of mathematics that many non-specialists can handle. The idea of a letter or symbol standing for any number so that it is possible to reason about arithmetic without specifying the numbers being manipulated is brain-bending for the majority of people.

And yet, this is the sine qua non of programming languages. It's the first level you must master.

C is a very simple language. It has terse notations for common operations, such as incrementing a value.

It is not "low level". It vaguely represents the machine architecture of a PDP-11 from 50 years ago. It's nothing like any 21st century CPU. It is not "close to the metal". It is not "portable assembler".

But it's about as simple as a lot of people can handle, so thousands love it.

Go lower level -- to assembly language -- and you put off the majority of those who aren't genius-level.

Go higher-level, to matrix maths or to working directly in lists and ASTs, and you put off loads more.

Go sideways to working with stacks, like Forth, and you dissuade a load more.

Eliminate arithmetic precedence with RPN and you alienate thousands more. A few love their HP calculators, or Postscript, but most can't handle it.

And they might not know why they can't but they are angry when they are told to just ignore an unscalable wall. Put an impassable barrier in someone's path, tell them it will fade away and stop being noticeable, and what would you expect but anger and resentment?

This is why I argue that BASIC has great merit that is missing from things like Python. Not syntactic whitespace: Python mixes text with code in output, it forces beginners to deal with abstract concepts like "editors" and "files", plus the ubiquitous OOPS -- all things that are meaningless to beginners.

BASIC replaced this with the simple brilliance of _line numbers._

And so the pros hate it and take pride in hating it -- because contempt culture is endemic in software.

https://blog.aurynn.com/2015/12/16-contempt-culture

C, also, is extremely dangerous, and this appeals to the machismo of stereotypically nerdy geek types, who lack the conventional signs of machismo.

Thus, take C, make it safe by removing all the dangerous bits, but keep that terse syntax, and the result is Java -- loved by thousands of workman coders who are untrained but like an easy tool. Much of world business is glued together in Java.

But it lacks the element of danger so the macho nerds detest it. Contempt culture again.