Why Aren't Computer Programming Languages Designed Better?
fastcodesign.com
fastcodesign.com
Safe to say, we're still not there yet.
P.S. also in PCW, a great magazine in its day, was another article about a program that could keep compressing files repeatedly to make them really small. I haven't see that yet, either.
"Evidence-based programming languages" won't solve anything by finding natural-language equivalents for difficult syntax. What natural language will these equivalents be created in? English, Japanese, Arabic? All languages? Will Japanese programmers share their code with English programmers by means of a Babel fish?
The idea of a poorly designed language is nonsense. All languages that exist or have existed were designed precisely for what and when they were needed.
At its core programming is about appropriate abstraction. To be widely useful the programming language's wheels should tread lightly, just touching the road. If there's too much abstraction, there's no friction and you go nowhere. With too little abstraction you're pegged to the ground and expend enormous amounts of energy to go anywhere.
What the author fails to understand is the difference between having a steeper learning curve versus less verbosity. When you read and write code all day long, you don't really pay much attention to syntax, it's just there to shape the logic.
In order to learn, it's okay to have a more familiar pseudo-code to get a feel of what programming is like. But I wouldn't want to write that code all the time.
An english-like syntax has already been introduced: http://en.wikipedia.org/wiki/COBOL#Verbose_syntax
Having said that, I completely agree with what you say. When spending a lot of time writing code, you really don't care about how intuitive the language is for beginners - much more important is that you can accurately and quickly express your programs. The closer to english a language gets, the more verbose the language gets and if I spend a lot of time programming, I want the language to be succint and straight to the point. (Nevermind that English contains a lot of ambiguous constructs, so an "english" programming language would still be horribly artificial for beginners anyway)
When I was a beginner, I -also- wanted that. For some people, verbose == readable, but for many, it's just not so.
Personally, the whole thing made me realize syntax is more or less meaningless to me. I was never really spending that much time making, or correcting, syntax related problems when writing JavaScript in the first place. Though when using CoffeeScript, I was spending a substantially larger amount of time trying to find ways of doing things that I knew were possible in regular JS, but generally avoided in CoffeeScript -- things like mixins, using closures for restricting access to internal members, having members named 'on', etc.
In the end I was spending too much time looking at the JavaScript output to see what was going on continue with CS. Its idioms make the popular subset of JS really great, at the cost of making things outside of it less 'natural' than they are in plain JS.