@Kartik Agaram Hmm… not sure if we are on the same page then. For me, focusing on user experience means you need both classic and romantic — can’t have one without the other, but you need to get the priority right — that’s why I quoted that exact sentence in my tweet.
I’m also thinking hard about your typing analogy in this context.
The motorcycle analogy in the book/article assumes a divide between programmer and user. And the different mindsets make the distinction between classic and romantic possible. Part of that is that some “romantics” don’t want to know how to fix their motorcycle and are happy having somebody fix it for them. That notion is easy to overlook in the quest for making programming more accessible to more people. (Which we absolutely should, but…)
Should we focus on expanding the mechanics of programming to include users, effectively teaching everybody how to type, perhaps by making it a little easier (that’s how I understand your typing analogy)?
I’d much rather want to build better things that appeal to both types of people, classic and romantic; those who type because they like writing, the craft, wordsmithing perfect prose or poetry, but also those who just want to write a damn email to move their project forward — those who want to get stuff done that has nothing to do with typing, typing just happens to be the most convenient way for them to make progress.
Programming has proven to be great for one group and terrible for the other. I’m not convinced that programming will someday be like typing; that we can make it so easy that it becomes the most convenient way for everyone to take advantage of computation.
That’s why I have personally turned away from trying to invent a “better programming language” or a different (perhaps visual?) way to specify computation. Instead I like to think harder about what it is that people want to do with those computational powers we have access to and they don’t. And how we can generalize those things to enable more people to take advantage of computation. Just like everybody today can take advantage of typing. But the mechanics of typing are not the important part.
I’m struggling to convey what I mean, and I realize that it might be hard to see the difference there. But I fundamentally believe it’s that difference which is what Alan Kay means when he talks about the computer revolution that still hasn’t happened. Or Bret Victor when he feels misunderstood when people ask him about his Inventing on Principle programming system demos that were just supposed to be a specific example for making a much larger point. Or what Michael Nielsen and Andy Matuschak explore when pushing the limits of what a website can do to help you learn something. These are all excellent, dare I say even legendary programmers, but that’s not the point. They use that skill to get somewhere else.
After all it doesn’t matter that today everybody can type, what they type matters. And tomorrow it shouldn’t matter if everybody can program, what they put computation to use should matter.
How they put that computation to use is an open question which I believe has more answers than just “programming” — to get there, however, we need programming, and much better and easier ways to do it.