Lisp is a Functional programming language, a 1950s product created for symbolic computing in Mathematics, used popularly in 1980s for Artificial Intelligence.
Famous software “Mathematica” is written in Lisp.
The original Lisp language, as defined by John McCarthy as “Recursive Functions of Symbolic Expression and Their Computation by Machine.”, defined the entire language in terms of only 7 functions (atom, car, cdr, cond, cons, eq, quote) and 2 special forms (lambda, label). Through the composition of ONLY these 9 forms, McCarthy was able to describe the WHOLE of computation — it doesn’t get more beautiful than that.
Unfortunately, because of the memory hungry requirement — hence the unique Garbage Collection slow backend processes — Lisp lost its attractiveness in the PC-dominant era of 1990s and 2000s, replaced by the most polular language Java which was invented by James Gosling, a former ‘Lisper’ who had created the popular FranzLisp.
Java has its great success in the past 20 years (1995 – now) in web clients, backend servers, and mobile (Android).
In the multi-cored CPU devices like Smartphones, Java is poorly suited for concurrency, and its object-oriented feature becomes a disadvantage in tracking/debugging the complex web of objects. Java language syntax is lengthy and verbose for mobile apps development.
The old Functional programming Lisp is short, readable, and without the disadvantage of complex objects. The memory size of smartphone is huge (32 GB – 128 GB), so no longer a limit for Lisp.
The return of Lisp happens in 2015 as “Clojure” language. There are few approaches to using Lisp on mobile apps through “Clojure” and some tools:
1. “Zachary Kim – No Strings Mobile App Dev for Clojure” –
2. “Elango Cheran – Exploring Programming Clojure In Other Human Languages (Demo: Tamil language)