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.
  • 6nk06@sh.itjust.works
    link
    fedilink
    arrow-up
    4
    ·
    16 hours ago

    Yes because it describes universal concepts. Lisp is a simple way to explain those things but you can do that in every language.