Mikel Evins has a lovely post that considers interactive programming and REPLs. As many of you know, I love interactive programming and am a huge fan of it. I like how you can try out bits of code and feel your way to larger functions and finally a program. If you’re not familiar with the concept, take a look at this fascinating video from Kris Jenkins as he writes a Spotify client in Elisp right before your eyes.
Evins begins by examining the idea of a REPL and why they aren’t all the same.There is, he says, a big difference between a Lisp or Smalltalk REPL and one provided by, say, Python. You should consult his post for exactly what that difference is but the TL;DR is that the Lisp REPL allows you to talk to your program as it’s running, even if it enters an error state.
He goes on to lament that many—or perhaps most—programmers today have never experienced this sort of programming and may not even know it exists. That’s too bad, he says, because many of them would find that it makes them happier and more efficient. I certainly agree. I always enjoy programming more when I can do it in an interactive way. Of course, that means writing in a Lisp or Smalltalk so it’s not always possible but it’s great when I can.