I recently started taking the SICP course( SICP playlist on ytb by MITOCW ). I find data abstraction, wishful thinking and the build a language methodology with primitives and means of combination quite a bliss to think about and to use.
I noticed that Hal compared it with the top-down waterfall model, and that makes me wonder if parts of these methods have there associates in the software engineering landscape.
I'm mainly interested in how much people are using it in their daily development and if there are corresponding ideas/methodology in/besides stuff like agile
terminologies
- data abstraction - define a data type with primitive data and selector with axiom of behavior, regardless of implementation. Axiom such as pict(rect) should draw the picture that pict represents in the rectangle rect represents, in which primitives are pict and rect; rect can have selector to get its width and height
- wishful thinking - to build a system with parts you wish you have without thinking about how they should be implemented.
- build-a-language - to define a language made out of curated list of primitives and means of combination (procedures, operators) that solves a class of problem, such as a language for pattern matching.
You pretty much had the answer in the query there is think. Just present it as toy to be handled.
To get more into detail, you probably would prefer those you can indeed pull apart and handle like toys than the "modern" slick ones. I see people mentioning raspberry pi. It's hard to fear it looking at its guts with bare eyes. After they fried a few chips pressing soldering iron for too long they will have zero respect for electrical computers.