@Jaime said:
99.9% of people can't tell you precisely what a program should do in their native language. For those 0.1% who can, programming shouldn't be a second hurdle.
You've got the point right, but I disagree on proportions. I'my pretty cynical about the general level of intelligence out there, but most people can work out the steps necessary to do something if they actually try.
What's more, when Heron says:
@Heron said:
if a person cannot express what he or she wants the program to do in his or her own native language, then no amount of user-friendliness on the part of a programming language is going to help them figure it out.
I entirely disagree. That's precisely what software wizards in other applications are designed to help with: to lead you through a set of choices that establish what it is you want, and configure the relevant settings - whether it's a search, a new document, whatever. I can't remember the proper terminology - assisted selection? - but the seeds are there. The whole point of what we're talking about here is that the ability to express yourself - whether in plain language, programming language, whatever - is an undesirable limitation, and one that, in an ideal world, we would have software to assist with.
Consider the world of painting for a moment, instead. To become a painter, to produce art, one has to be able to wield a brush. That limitation has prevented some great artists from working for our benefit, because it's untenable to assume that great artistic ability and manual dexterity are linked. In the ideal world we're hypothesising, brushes would apply colour as you see it in your mind, and anyone could create the best painting they can imagine. That doesn't mean that everyone would be equally good at producing great paintings; just that they would no longer be limited by the difficulty of applying paint. Similarly, the best programmers would be those who were best at designing the methods used by the program, rather than those who were good at program design and had a body of unrelated esoteric knowledge that allowed them to turn design into code.