Hacker News new | past | comments | ask | show | jobs | submit login

It's really sad. The original idea is that application interfaces should make programming accessible. Think the vi editor as used by AT&T secretaries, or Excel spreadsheets.

Some concepts and interfaces simply can't be shrouded in clickable widgets that command the computer to perform some pre-scripted task. Just like people need to use math directly and require the ability to input and manipulate simple equations, some problems require the creation of small programs--variables, conditionals, and the encapsulation of these things into functions.

Maximizing the utility of computers means everybody should be capable of not only basic grammar or basic math, but basic computer programming. But that doesn't mean everybody needs to be taught to be an author, mathematician, or computer programmer. Rather, actual computer programmers need to design applications in a way that make it simple and easy to apply basic editing, mathematical, and computer science techniques to the task at hand.

That was the original idea back in the day. Then it was co-opted by social movements in a manner that completely misunderstood the notion. Indeed, they have it completely backwards. The way to make programming accessible (and to reduce the outsized power of the programmer class, sharing the wealth) isn't to turn everybody into programmers, it's to make programming a part of every job.

But the fact that programming is largely still the domain of programmers isn't the fault of those social movements. It turns out it's really hard to design interfaces and applications in this manner, and harder still to keep it consistent across unrelated applications so knowledge and experience readily transfer. Arguably the furthest we've ever gotten is early text editors, the shell, and spreadsheets.




The fact of the matter is that, broadly speaking, basic programming is a suite of cognitive processes that pretty much all come online at the same, reasonably above-average IQ, and they are irreducibly complex; they cannot be further simplified except by rote execution of formal process, at which point you should just let the computer handle it.


That's a pretty bold assertion. Or maybe your understanding of "basic" programming is much more advanced than necessary. I'd consider writing a slightly complex ruleset for filtering e-mail "basic" programming. I don't think that "Put that mail in this folder if the subject contains A unless it's from Jack, then put it in the Jack-Folder" a skill that only comes online at an above-average IQ.


I think one of the best newer success stories here is another thing that, like "filters" and "spreadsheets", doesn't even call itself "programming". The Android app Tasker [0] is a "total automation" tool with over a million installs.

[0] https://play.google.com/store/apps/details?id=net.dinglisch....




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

Search: