REPL means “trying things out”.

It is derived from the words “Read Eval Print Loop” which were parts of the original Lisp REPL.

Continuum

REPLs form a continuum

  • at one extreme is the programming language REPL of Lisp
  • at the other extreme is “Live Programming”

Bret Victor

IMO, a lot of Bret Victor’s independent work boils down to REPLs.

Rapid Prototyping

Hmm, is rapid prototyping just a way to try out designs?

Dynamic Languages vs. Static Languages

Hmm, dynamic languages tend to allow experimentation.

Static languages (compilable languages) tend to inhibit experimentation and expect that you already know what you want.

If you don’t already know what you want yet, e.g. when starting a new project, compiled languages get in the way of free-form thinking about the problem.

Compilers are optimizers for designs.

Some people argue that type systems - compiler languages on steroids - help them design a problem. I would argue that exploring a problem is Design. IMO, type systems are but one way to explore a problem.

If your problem involves plumbing bits of data together, then types might act as useful models.

If, on the other hand, your problem involves plugging control-flow bits together, then types might not be the most useful models. Extreme examples of this are lambda calculus1 and continuation-passing style. The actual unit of pluggability consists of one type - the control-flow-doo-dad (aka function).

Waterfall Design

Imagining that you already know what you want, just by imagining it and not trying it out is the essence of Waterfall Design.

Air Design is like playing Air Guitar. It sounds perfect in your imagination.

Primitive REPLs

Sketches

Artists try out art using paper and pencil before commiting to final implementations of the art.

Songwriting

Songwriters try out phrases before commiting to a final form for the song.

See the bus scene in 8 Mile2 for a graphic example of how one successful songwriter used pen-and-paper as a REPL.

See Also

Table of Contents
Blog
Videos
References
Books

  1. Lambda Calculus is Forth. Postscript is Forth. Lambda Calculus is Forth tuned for language theory thinking, postscript is Forth tuned for placing ink dots on pieces of paper. Forth is atoms. LC and PS and molecules. 

  2. Credit to Pat Pattison for pointing this out to me.