There is a program called LightTable. It is an Integrated Development Environment or IDE. An IDE is a program that programmers use to write programs. The nifty feature of this IDE is that it will run your program as you write it and show you the results of every command in the program as you type new ones in.
It is named after the device that photographer use to sort slides and negatives. The photographic light table is a box with a lamp inside of it and a translucent glass top that the photographer sets the negatives on top of. The light shines through the negatives allowing the photographer to sort through them and find the one they are looking for.
The principle language that LightTable was initially written to support is called Clojure. It is an updated version of the language Lisp. Like most Lisp dialects, Clojure is a dynamic language. This means that you interact with it using a piece of code called a Read-Eval-Print-Loop usually shortened to REPL. The REPL reads an expression, evaluates it, then prints the result, over and over again in a loop.
If the typical way of interacting with Clojure is through a REPL, why would one need an IDE that shows you the values of all of the expressions in the program at once? The difference is that the REPL only evaluates each expression once as it reads it in. LightTable evaluates all of the expressions in the current buffer every time you enter one or edit an expression so that it is complete. This helps the programmer to avoid mistakes by catching them as soon as they are made.
LightTable supports plugin extensions so it can be modified to support other popular languages such as Ruby, PHP, Go, Perl, Python, Julia, and many others. It also integrates nicely with Leiningen, a build tool written for managing Clojure projects.
I intend to develop at least one project in Clojure using LightTable. If it goes well, I have several other projects in the wings. I also have some ideas for using Clojure for several work related projects. That would just be one more way that I can make my job into something that I enjoy more every day.
Sweet dreams, don’t forget to tell the ones you love that you love them, and most important of all, be kind.