It requires faith and intuition. Faith is required to believe that if the stars align, and every incantation is correctly performed for this magical machine, the right thing will really happen. And intuition is required to work out what has gone wrong, and how to fix things when they don’t go as planned.
Unfortunately these can’t be taught directly…
> Testing is generally preferable to faith, and testing needn’t be difficult with computers.Sounds like the sqlite development method. Faith and tests. No architectural planning, and lots of desastrous FTS attempts.
I don't remember whether that was before or after I started absent-mindedly writing yet a different Lisp in C while hanging around RMS. He looked over my shoulder and asked what I was doing. I said writing a Lisp. He asked why I was doing that and I said everybody ought to write a Lisp. He thought about that for a few seconds, said "you should write it in assembler", and walked away.
The "Don't build your own Lisp" article seems reasonable to me and the book it negatively reviews ("Build your own Lisp", I guess) does sound bad.
[0] https://github.com/kanaka/mal [1] https://norvig.com/lispy.html [2] https://norvig.com/lispy2.html [3] https://khamidou.com/compilers/lisp.py