This year marks the 50th anniversary of Lisp. While I am not a Lisp hacker, I have dabbled with it (and lambda calculus) enough that I do take interest in things that happen in the Lisp world. There was the Lisp50@OOPSLA workshop today but I only had time to attend the first talk of the day by Guy Steele and Dick Gabriel.
Guy Steel and Dick Gabriel presented their combo-talk on The Evolution of Lisp. And like every combp-talk by Guy and Dick, it was entertaining and informative. I had never actually realized how many versions of Lisp there were until today! The slides that Guy and Dick showed contain the history of Lisp from the 1960s till now. They could even divide the different implementations geographically across the United States and showed how different version of Lisp from different states influenced one another. While the primary centers for Lips development were at MIT and Stanford, there have been many different efforts outside of those two universities as well.
The presentation must have been endearing for most of the Lisp hackers in the crowd. For me, it was also an insightful look into how one of the oldest programming languages had evolved and to see its impact on other modern programming languages.
For me, the most memorable part of the presentation was when Dick emphasized that though there were so many different versions of Lisp, each with its own little variation (making integration and code sharing hard) the explosion of those different implementations actually fueled a lot of interest and research into making better implementation for Lisp. Now that there are standards for Lisp, fewer dialects have popped up. And so by gaining standardization, you do lose out on some of the innovation because no one is interested in creating something that doesn't conform to the standards anymore. I thought that was something interesting to think about since we usually take it that standardization is always the best route. But Lisp has shown that innovation can often times blossom through many different home-brew implementations.Tweet
comments powered by Disqus