Saturday, April 18, 2020

The Roots of Lisp

In the last two weeks, we listened to two different podcasts: one by Dick Gabriel and the other by Rick Hickey, both talking about the wonders of Lisp and Clojure, respectively. Both of those podcasts mentioned that one of the main draws of Lisp and other functional languages could interpret themselves, but I honestly hadn’t quite grasped the concept of how that was done. I haven’t read John McCarty’s original paper, so I don’t know how much of the praise should go to him, but I think Paul Graham did a fantastic job explaining how the seven primitive operators can form the basis for such a complete language.

Graham also mentioned that he saw Lisp and similar languages becoming the main model used by programmers in “the future”. And this was written in 2002, which is a very long time ago looking into how old computers are. And at least today, functional languages have found a home in many different applications, and with JavaScript being as popular as it is, more people are bound to discover functional programming and keep using it, at least once in a while. I think all of this speaks to the possibility of Lisp building on the popularity it has gotten recently, and becoming as mainstream as other languages we know today. 

I don’t know whether this is exclusive to Lisp or not, but I think its ability to be as powerful as it is while having such simple axioms will prove very useful for its longevity, as it means that “legacy code” won’t really be a problem, and it could make the code easier to understand, which is important in order to keep newcomers interested in using Lisp in one of their projects. I think that with all of their features, functional languages stand a real chance of being used alongside procedural languages for big projects and applications, but I don’t see them overtaking the languages most people work with in the near future. 

No comments:

Post a Comment