When I worked for Cerner as a systems engineer, I attended a workshop for a new computer language (open source and from cognitect) called Clojure. For many of us this was the first exposure we had ever had to a dialect of Lisp. My college chose more traditional languages like Java over languages like Lisp, which is a great choice for getting into software development, but unfortunately doesn't allow students to discover the fantastic language that is Lisp. One of the things I loved right away about the language was its package management (for Clojure it's Leiningen and for Common Lisp its QuickLisp). The portability of the language was also attractive. I did find a lot of features of lisp alien (no pun intended, Lispers will get the joke). For exampke Lambdas and lambda calculus was strange to me initially (though some work in Tcl helped me along in this regard) . Other features of the language seemed strange as well such as emphasis on functions over objects (common lisp does have an object system called CLOS and Clojure uses namespaces to achieve organization of code packages). One idea that at first seemed annoying but has later proved invaluable in the understanding of how lisp works was the avoidance of state in lisp. Clojure is extremely dogmatic in this regard even more so than Common Lisp (common lisp uses images to get around this, more on this later). It seemed strange to me that a computer language/system would avoid state since it is often critical in solving problems algorithmically. Eventually I ran across an oddity in Computer history that until recently I was relatively unaware of which was the idea of a Lisp Machine. In almost every modern operating system the Kernel is a combination of assembler for whatever processor the OS is designed for and low-level C language, In the case of a Lisp machine the Kernel is implemented as a compiler and is solely written in Lisp, The Lisp code translates directly to assembler for the hardware. I was stunned by this because similar attempts in the past have failed tremendously. For Example, Sun Microsystems attempted to implement an entire operating system in Java and the result sucked to say the least. In fact every successful Commercial and non-commercial operating system I can think of has their Kernel implemented in various levels of C/Assembly/C++. The lisp machines built entirely to run Lisp such as Symbolics LMs running Genera (there is soon to be a new release of genera) and Xerox and Texas Instruments various Lisp machines. Nowadays most everyone creates a common lisp kernel running on top of the os sometimes called an "image" that can be launched. The image can store state and is essentially a mini OS implemented by the programmer to run atop of the OS. This is often accompanied by the use of Emacs, a subject I will not even touch on in this post. In any case, lisp virtual machines have been gathering steam (I'd argue clojure is a lisp vm implemented on the JVM), In summary, I've been using Lisp images as micro-oses on top of whatever OS I'm using. I have typically chosen to use GNU Common Lisp when possible for some of its niceties, but it uses a bytecode and has some issues on the Mac. On Mac I've used SBCL which is fully native and runs great on OS X.