|
|
|
|
|
by dpkendal
4585 days ago
|
|
“If you believe that you have never tried to teach a class of non-programmers.” No, you’re trying to teach them with the same kind of tool that I call ‘clumsy and unsophisticated’ in the article. “Apple have made a lot of efforts to bring programming to the common user: Hypercard, Applescript, Automator. They are abandoned because no-one was interested in using them.” In many ways HyperCard was still too difficult, but it was a great tool. Many people did use it to make simple programs, and some became programmers from it. I’m not arguing that everyone should learn to program to the level of being able to create and sell apps; HyperCard is a good example in that sense. AppleScript is a failure because it’s a terribly difficult language even for most working programmers. Its designers completely failed in that respect. Automator is not programming. |
|
Also, your whole premise is just wrong. There's been a ton of research showing that the hard thing about programming is not syntax, or tooling, but thinking in abstract terms (I'd link, but I don't have access to most academic publications these days :( ). You're not the first person to think "Hey, if only we could make this whole programming thing more accessible to everyone, everyone would do it!" And yet nobody has succeeded, or even gone close. The best we've managed is to make it easier for an interested amateur to learn to program normally. We've got good documentation available on the Web. Every PC can easily install a wide range of language development environments, for free. Large numbers of frameworks are available to allow you to avoid having to do the heavy lifting for areas where you don't have the time / brainpower to become a subject matter expert. These are all positive developments, but the fact is that 99% of the population still can't even explain in plain English (or Spanish, or Chinese or whatever it is they speak) to a developer what it is they want a system to do.
When was the last time you saw a spec written by a non-programmer trying to explain a business process? Did they even try to explain what happens in error cases? If they did you were a lucky sort, because I've seen dozens of these types of documents, and none contained information on how to handle error conditions. They'll tell you to pull an employee out of the database based on the name, without stopping to think that several employees might have the same name, so you need to have some unique identifier. They'll tell you that an action needs to be done on the first of the month, but they'll forget to tell you what to do when the first of the month is actually a public holiday. These are the problems that we, as programmers, are trained to deal with, and which most people just don't seem capable of doing. And "easy" tools aren't going to help them, because the problem isn't the tools, it's the abstract thinking.