Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

“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.



Yes, but you took Apple to task, singling them out as the worst offender, when this clearly isn't the case - Apple really have tried to make programming accessible to the masses. OK, so Automator failed, but at least they tried. When was the last time you installed a linux distribution that came with graphically-assisted scripting out of the box that was more polished than Automator? Oh, that's right, never.

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.


> No, you’re trying to teach them with the same kind of tool that I call ‘clumsy and unsophisticated’ in the article.

Despite the vitriol you've received, I think I understand what you're trying to say here. I think you want a higher level programming language. And not merely a successor to the latest zeitgeist, but essentially what C was to punch tape. That is, binary might be fundamental to computation, but it isn't fundamental to the ergonomics of programming. So the question is, is it possible to somehow abstract programming to an higher level?

pg wrote that all other language have evolved towards lisp. I think the trend is a special case of a trend towards functional programming. So imho, whatever comes next (given there is a next) will have to (for lack of a better word, ) supersede lambda calculus.


You seem to be the only person in this thread who has grasped this idea; though instinctively to me it feels another formalism like LC is the wrong way to go.


I'm new to programming, so I don't have much street cred. But I've heard others call LC "the assembly language of math"[1]. And I think functionals are really neat. So imho, I suspect LC's more than a formalism. But it drives me up the wall that it doesn't have an elegant subtraction analog. This leads me to believe there must be something better.

The answer sure can't be the Apple thing you mentioned. I imagine it's a just a gui, a kludge. But if not LC, then what do you think?

[1] http://matt.might.net/articles/compiling-up-to-lambda-calcul...


> Automator is not programming.

Automator is not coding.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: