I think you're missing the point. We don't have any control over the fact that medicine and physics are complicated because they reflect nature. Law is complicated because it's an attempt to create a set of rules that apply to all possible human scenarios.
This study, and the person you're replying to, aren't saying that all programming languages are unnecessarily complicated and should be changed. They're just saying that they're inaccessible to beginners. The authors of the study note that they're designing a programming language for beginners, so these things are useful for them to know.
One of Rich Hickey's talks talks about this (I think it was 'Are We There Yet?'). In it, he references musical instruments, which are absolutely NOT designed for beginners. Why should they be? Tools shouldn't be designed specifically to PRECLUDE beginners, but why should any of them be optimized for beginners?
A good tool should allow someone to progress from beginner to novice to expert, but at the end of the day, the expert is who the tool is really designed for. Anything else is just bonus.
Nobody is arguing for replacing expert tools with these beginner-optimized languages. Continuing the instrument metaphor, I'd say they're like recorders: being taught in elementary school won't make them ubiquitous in the professional industry. But they're a great way to introduce students to a simple, relatively inexpensive way to create music.
>In it, he references musical instruments, which are absolutely NOT designed for beginners.
Musical instruments increasingly are designed for beginners. A typical software suite makes it easy to make decent music by tapping a few buttons more or less in time.
Classical instruments aren't designed for beginners, because they weren't designed at all - they evolved from crude and simple historical originals.
But they're a subset of music as a whole.
Arguably the problem is that computer languages are NOT designed for anyone. This is why so many software products and services are significantly broken so much of the time - to an extent that would be ridiculous and completely unacceptable for hardware objects.
I don't see a problem with at least exploring new language models that have roots in perceptual psychology instead of in hardware design.
Classical instruments are designed, just as much as any other artifact created by humans. If pianos were not designed, then neither were bicycles, looms or printing presses.
> Tools shouldn't be designed specifically to PRECLUDE beginners
I'm reminded of a lesser-known talk[1] by Dan Geer, in which he discusses cybersecurity maturing into its own field - its own science - using T. S. Kuhn's definition[2] as a rough guideline. One of the criteria used to recognize the transition into a specialized field was the use of jargon. Maturity as a stand-along field has happened when it becomes necessary to invent new jargon that is - by definition - inaccessible to outsiders.
To be clear, I completely agree that tools shouldn't preclude beginners whenever possible, but I suspect that my not be possible as everything becomes more specialized.
The more you advance in a field, the more you control you want to have over the concepts you work with and what you produce. So an expert will look for a more flexible tool, one that gives access to all these concepts. Whether that's a bare bones instrument or a computer program, it will be unsuitable for a beginner.
> We don't have any control over the fact that medicine and physics are complicated because they reflect nature.
I don't agree that this is all that different.
In physics, some phenomenons can be either simple or complex to describe, depending on what formalism you use to describe them. And sometimes, complex formalisms can be hard to understand at first, but help producing simpler description of the phenomenons your looking at.
For example functions and derivatives are hard to understand at first, but they drastically simplify the description of classical physics.
So in programming just as in physics, you just need the right conceptual tools to describe your problem.
And while boolean logic may be hard to understand at first, it really helps specifying complex behaviors.
In that sense, I think I agree with GP: over simplifying the conceptual tools may not results in better problem descriptions.
Honest question, because this comes up reasonably often in PL discussion. Do people genuinely have a hard time with Boolean logic? If I was to make a list of things I found hard when learning about programming I'm not sure Boolean logic would make the cut.
I said boolean logic because the paper mention fifth graders, which are unlikely to be at ease with complex boolean formulae. But there are number of more complex concepts that would also work: OOP, maps or reduce, mutexes and so on.
To answer your question, in my experience (I taught programming 101 number of times) many people are indeed confused when they need to reason about complex if statements. Typically, they make redundant tests, and it takes a little while before they understand why it is not needed.
>We don't have any control over the fact that medicine and physics are complicated because they reflect nature.
But doesn't the machine reflect nature for a programmer as well? I think this paper does little more than capture fantasies about the inherent capabilities of machines and recite general logic elements of natural language.
To expand on this, even expert programmers have a harder time adjusting to the mindset of a lot of modern programming languages, which is one of the reasons a lot of software written by experienced programmers can still be riddled with bugs. Just because they're skilled at programming in this fashion does not imply that they could not be skilled in a "more natural" style.
This study, and the person you're replying to, aren't saying that all programming languages are unnecessarily complicated and should be changed. They're just saying that they're inaccessible to beginners. The authors of the study note that they're designing a programming language for beginners, so these things are useful for them to know.