Learnable Programming
Bret Victor: Learnable Programming.
Thought experiment. Imagine if you bought a new microwave, took it out of the box, and found a panel of unlabeled buttons. Imagine if the microwave encouraged you to randomly hit buttons until you figured out what they did. Now, imagine if your cookbook advised you that randomly hitting unlabeled buttons was how you learn cooking.
Also, a new take on an old favorite (paging Nathan):
In his influental essay No Silver Bullet, Fred Brooks makes the case that software is inherently “invisible and unvisualizable”, and points out the universal failure of so-called “visual programming” environments. I don’t fault Fred Brooks for his mistake — visual programming is indeed worthless. But that’s because it visualizes the wrong thing.
Traditional visual environments visualize the code. They visualize static structure. But that’s not what we need to understand. We need to understand what the code is doing.
Readers are advised that they will henceforth consider their tools puny and broken. (Maybe it’ll even get a few vim- or emacs-heads to question whether a pure textmode editor could hack it if the stakes were raised. The few of them who will accept the idea that a couple of men didn’t get everything right in the 70s, that is.)