One of the most powerful ideas conveyed by SICP is the idea of designing programs by “wishful thinking”. It is a simple but powerful concept. The idea is that if you want to design a large program, then we think in terms of some building blocks and use them in our program as if they are primitives. We assume that it is someone else’s problem to write those and give it to us, for a moment. We then write our program in the clearest terms using the newly given building blocks. Once that’s done, we worry about how to implement those building blocks. The idea itself is a recursive one.
For a while I thought that this is a sort of top-down approach of programming. But I now feel that, it is not so. It is instead, bottom-up programming strategy. It is as if we grow the language to create the primitives we need and solve the problem at hand. The order in which we implement them is not important and that’s what we often confuse with the top-down vs bottom-up approach. Atleast that’s how I thought.
Post a Comment