Developing in a REPL is like developing in a different world. The immediate execution it offers lets you interact with your code much quicker than a traditional compile-configure-run-click-look-loop (aka CCRCLL). With CCRCLL you are at the mercy of whatever UI is covering your code. The UI generally tends to limit your interactions with the code to certain well worn paths. In the REPL you are interacting with your abstractions directly. Create a stopwatch abstraction and start the timer a tickin'. Create a web-scraper and get a scrapin'. Create a <noun> and start a <verbin>'. This feedback loop of creating a thing and immediately trying it out is powerful. (*cough* TDD *cough*)
I like working in a REPL for certain tasks especially when I am experimenting and trying out different approached to a problem. But it's no silver bullet. By itself the REPL is a tool. It's the potters wheel that turns your clay. Much like the potters wheel it doesn't shape the clay for you but simply provides an environmment or platform from which you do the sculpting.
Much like the clay pot being formed by the pressure applied by your fingers we need something to apply pressure to our digital creations. Since the magic is happening on the other side of the glass we need a stand-in that can interact with the abtraction directly. You could use a unit test framework but that is too formal for the type of experimenting I like to do in the REPL. Wait. Experimenting is how I would describe the interaction there. Let's see if that checks out.
Seems to check out.
Give it some thought and in my next post I will show you what I came up. Happy designing!