"Everyone should be able to program."
Wow. A lot of ambivalent feelings here and in the comments. It's an intense topic!
I am a strong yes, but my definition of "programming" might be different from yours. I think of programming as "creating programs", that is, creating novel computer behaviour.
The main way we've done this, so far, is by writing code in a programming language. It's so engrained that most people think coding and programming are synonymous.
But code is just one way to create programs.
Writing code mostly sucks. It's a tedious process with a lot of busywork. Most people find it needlessly byzantine.
I think computer scientists and software engineers self-select for people who understand and enjoy coding. We think it's great, so we don't try very hard to explore other modes for software construction.
When we do, the visual programming or 3GL systems we create are limited and less powerful than our existing coding model, so we don't put much energy into them.
I think everybody should be able to program the same way I think everybody should be able to attend a city council meeting. If there are systemic impediments to people exercising that power, that's a problem with the system, not the people.
There's an engineered helplessness in most people's experience of technology. I'm a software developer, and about 75% of the time I feel like a total victim of the software I use. It sucks.
People deserve to control their tech and share it with others.
One really dark part of this thread is how many people respond that it would be terrible if everyone were forced to learn how to code.
Like, what an awful comment on the state of software construction that is. Our idea of making software is so miserable that we imagine a horrible dystopia where people are *forced* under duress to use our shitty programming toolchains.