4 ms·
For me it clicked after I red Practical Common Lisp, ANSI Common Lisp and On Lisp, Let over Lambda and after I did couple projects in Common Lisp. One day I lo
by lmilcin 6y ago
For me it clicked after I red Practical Common Lisp, ANSI Common Lisp and On Lisp, Let over Lambda and after I did couple projects in Common Lisp.
One day I looked at various REST API clients generated by JHipster. The clients generated for all languages had huge amount of boilerplate.
"Well, that's fair for ability to generate it from DSL", I thought to myself.
Then I looked at the code generated for Clojure client and it was many, many times smaller and looked as if somebody wrote it by hand. It was nice and neat.
Basically, the calls to APIs were macros and rather than generate a stack of code to be put in repository, the macros generated everything at runtime. The DSL was translated 1:1 to calls to macros and all the complexity of the generated code was completely hidden.
This caused me to spend considerable time thinking about the nature of difference between lisp and all those other languages and at some point it just clicked.