February 1, 1993
Do you have any opinions on the dominant paradigms of today, and about which will survive into the next decade?
I think the transformational-rule paradigm is working fairly well. I think the functional paradigm is largely working well. I think the procedural paradigm sucks, basically. I think the fundamental problem with it is there’s much too much hidden state in the procedural paradigm. You have these weird variables that are getting updated and things that are happening that you can’t see. I strongly believe that there is a way to do procedural programming that does not use hidden states. For example, here’s a thing that I’d love to be able to do: make a kind of symbolic template of the execution history of a program. The kind of thing that trace does… of taking a program that’s executing and giving you back the symbolic representation. What I’d like to be able to do is program by saying, here’s what I want—it’s not quite a flowchart, it’s something beyond a flowchart—my program to be like, now I would actually do the things that make it do this. That’s kind of vague, and the reason it’s vague is because I haven’t figured out how to do it. But I think one of the directions that could be very fruitful is how you take these conceptual ideas about procedural programming and turn them into something that’s easier to look at once you have a program. I mean, the idea of procedural programming, of loops and so on, people have no trouble grasping. But once they’ve written their programs, they have a lot of trouble grasping what the programs do. And if one could have a more explicit way of representing these things, one would be in good shape, I think.