For me, lisps (CL, scheme, or any other variant) hit a nice sweet spot. You&#x27;re programming at the AST layer, which makes adding new semantic features (say you wanted erlang style concurrency and message passing) trivial to integrate syntactically (less trivial to implement the underlying feature). Compare this to trying to patch that into C#. Same for any new semantics: logic languages; specific constructs for math, physics, music; OO - see CLOS.<p>APL is less extensible in this regard (to my understanding, someone might prove me wrong). Smalltalk is probably on par, if you can model it with objects and methods&#x2F;messages cleanly.<p>But in the end, for me, it&#x27;s the idea of programming the AST directly and being (mostly) freed from arbitrary syntactical constructs.