1. 21
  1.  

  2. 3

    This is one of my favorite Lisp features that is not often replicated (as well) in other languages / environments (and definitely not 20 years ago). It also makes it easy to diagnose and debug issues.

    However it also makes it easy to screw up one’s production environment and it takes discipline to make sure the changes one does in the live environment are also reflected in the source code.

    1. 2

      it takes discipline to make sure the changes one does in the live environment are also reflected in the source code.

      this is actually easy to do by not developing in the live environment.

      I’d like to add that there is no “dive in or reject” choice here. One can use this when it makes sense, like to reload a user’s settings in my case, and in doubt, safely restart the app.

    2. 3

      Incremental development with hot-reloading of funtions and classes the way Common Lisp does it is way too uncommon considering it’s among the biggest reasons why it’s still in use today.