As a Zoomer who grew up with Python being a dominant teaching language I don’t think I’ve even heard Pascal mentioned. I’ve even taken classes in QBASIC (which was replaced with Python…)
I lost interest in that course when they said: "So we need blah blah from LISP because LISP is bleh bleh". Lol, why MUST i need LISP to learn basic concepts ????? The authors got something wrong from beginning i think.
Basic concepts should be taught and built from SCRATCH !
The book doesn’t stop at basic concepts. A Lisp-like language was chosen because it allows code to be manipulated like data (homoiconicity). If you aren’t interested in the interpretation of computer programs part of SICP, then this book isn’t for you.
If you are interested in the ICP part but Scheme doesn’t work for you, check out Crafting Interpreters. It’s truly excellent and you can read it for free at the author’s website.
I don't see those 2 things are related though: LISP vs Interpretation of computer programs. That's the issue here.
See ? The book title has no mention on LISP, it's to teach Interpretation of computer programs right ? Why do readers need to learn something else (like LISP) ?
Probably because computer programs need a concrete representation, to actually have a structure and get to the business of saying things about it and interpreting.
Something other than Lisp can be chosen. (I seem to recall the MIT course is based on Python now.) Using something else would just add a lot of bulk to the book about parsing; you'd need chapters on automata theory leading up to lexical analysis, parsing techniques and so on. The output of the parser would be Lisp, and so then the structure and interpretation part would begin there.
They answer the “why Lisp” question right at the start:
> If Lisp is not a mainstream language, why are we using it as the framework for our discussion of programming? Because the language possesses unique features that make it an excellent medium for studying important programming constructs and data structures and for relating them to the linguistic features that support them. The most significant of these features is the fact that Lisp descriptions of processes, called procedures, can themselves be represented and manipulated as Lisp data. The importance of this is that there are powerful program-design techniques that rely on the ability to blur the traditional distinction between ``passive'' data and ``active'' processes. As we shall discover, Lisp's flexibility in handling procedures as data makes it one of the most convenient languages in existence for exploring these techniques. The ability to represent procedures as data also makes Lisp an excellent language for writing programs that must manipulate other programs as data, such as the interpreters and compilers that support computer languages. Above and beyond these considerations, programming in Lisp is great fun.
Why ? You want to implement yourself without any "advanced toolits" from LISP.