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