Lisp (programming language)
What is Lisp (programming language)?
Lisp, an acronym for list processing, is a functional programming language that was designed for easy manipulation of data strings. As one of the oldest programming languages still in use, Lisp offers several different dialects and has influenced the development of other languages.
A unique feature of early Lisp versions compared to most other programming languages is that the code could be directly interpreted without a compiler. The source code itself could be parsed and interpreted directly on a system. Today, however, most Lisp versions require that code be compiled and then loaded into an image to run. This offers faster program execution speeds compared to direct interpretation.
What are the different dialects of Lisp?
Since its inception, Lisp has gone through multiple changes and iterations depending on the need. These language implementations are known as dialects -- many of which are open source. The most used Lisp-based languages today include the following:
- Emacs Lisp
- Common Lisp
In Lisp, all computation is expressed as a function of at least one object. Objects can be other functions, data items -- such as constants or variables -- or data structures. Lisp's ability to compute with symbolic expressions rather than numbers makes it convenient for artificial intelligence (AI) applications. While it isn't as popular as C, Python or Perl, Lisp is still used for AI programming as well as several other functions. Lisp continues to be popular in higher education, as students learn Lisp programming tactics and extend this knowledge to the private sector after graduation.
Benefits of Lisp
While there are several reasons why the Lisp programming language is still popular after all these years, perhaps the most important is that it's considered to be a relatively simple language to learn. This is probably why it's still popular in academia. Other benefits include the following:
- access to powerful and easy-to-integrate macros;
- the language itself is programmable to meet nearly any need;
- operates on most platforms; and
- many find programming in Lisp to be faster with smaller code footprints.
Who uses Lisp?
Lisp is used within academia for a variety of functions, ranging from basic programming and AI to machine learning and quantum computing. Outside the university walls, Lisp dialects are used by the following:
symbolic AI programmers;
quantum computing professionals;
embedded systems programmers;
those seeking a quick scripting language; and
small or understaffed programming teams.
Today, Lisp dialects are used to create code in a variety of use-case scenarios from basic HyperText Markup Language and web-based apps to software that operates and controls mass transit systems, including the London Tube.
Commercial applications of Common Lisp include Grammarly, which uses AI to analyze text and suggest improvements, and Boeing, which uses a server written in the Lisp variant. Lisp Clojure or ClojureScript users include Amazon, Capital One and Walmart.
History of Lisp
John McCarthy at Massachusetts Institute of Technology is credited with creating the first version of Lisp in 1959. The first official implementation of the language was performed on an IBM 704 mainframe using punched cards. Between the 1960s and 2000s, more than a dozen mainstream dialects were created and used in a variety of ways.
Throughout the 1990s, Lisp's popularity began to fade as programmers opted for more modern programming languages. However, computer scientist and entrepreneur Paul Graham helped to create a resurgence in interest for Lisp. In an essay titled "Beating the Averages" written in the early 2000s, Graham wrote of his interest in using Lisp within his latest startup organization's software platform to create a competitive advantage over others. Graham stated: "Our hypothesis was that if we wrote our software in Lisp, we'd be able to get features done faster than our competitors, and also to do things in our software that they couldn't do. And because Lisp was so high-level, we wouldn't need a big development team, so our costs would be lower." Many readers of the essay took this notion to heart, and thus the use of Lisp again.
Choosing the right programming languages for DevOps workflows can be complicated, especially because there are so many to choose. Explore the advantages and disadvantages of several common programming languages.