LFE is a Lisp-2+ written for the Erlang VM, providing 100% compatibility with Core Erlang. It is a proper, functional dialect of Lisp with a REPL and macros, as well as features inherited from Erlang, such as pattern pattern matching. Importantly, LFE boasts seamless interoperability with Erlang and the BEAM ecosystem of libraries. It not only has been used in stable production applications since 2015, it has also been employed by start-ups as their differentiating tech. LFE is flexible enough to be everything from your go-to scripting solution to your preferred syntax for massively scalable, soft-real time services.
While it is well-known the Robert Virding released the very first version of it in 2008, there was a little more initial whimsy associated with the decision to write the LFE programming language:
The earliest work is actually from 2007 but this was toying with parsing and implementing a lisp and was more a preamble to LFE. The real work with LFE didn't start until 2008. The earliest LFE files I can find are from March 2008. Originally I wasn't using GitHub, or any other VCS for that matter, and just kept the separate versions as copies of the directory tree.
There were a number of reasons why I started with LFE:
- I was an old lisper and I was interested in implementing a lisp.
- I wanted to implement it in Erlang and see how a lisp that ran on, and together with, Erlang would look. A goal was always to make a lisp which was specially designed for running on the BEAM and able to fully interact with Erlang/OTP.
- I wanted to experiment with compiling another language on top of Erlang. So it was also an experiment in generating Core erlang and plugging it into the backend of the Erlang compiler.
- I was not working with programming/Erlang at the time so I was looking for some interesting programming projects that were not too large to do in my spare time.
- I like implementing languages.
- I also thought it would be a fun problem to solve. It contains many different parts and is quite open ended.
Robert Virding is one of the co-inventors of Erlang and was an early member of the Ericsson Computer Science Lab. He took part in the original system design and contributed much of the original libraries, as well as to the current compiler. He has always been interested in the design of languages and their implementation, particularly functional and logic languages. Robert has created several different languages in Erlang and on the Erlang system, which have had various levels of adoption around the world. He has also worked as an entrepreneur, having been one of the co-founders of one of the first Erlang startups (Bluetail). Additionally, Robert spent a number of years at the Swedish Defence Materiel Administration (FMV) Modelling and Simulations Group. He co-authored the first book on Erlang, published by Prentice-Hall, is now Principal Language Expert at Erlang Solutions Ltd., and is regularly invited to teach and present throughout the world.