Does learning one Lisp help in learning the other?
clojure, common-lisp, elisp, lisp, scheme
Solution
Yes - it is significantly easier to pick up a new Lisp if you know one already.
Reasons:
- You'll understand the concept of "code is data" and metaprogramming in a homoiconic language (this is arguably the biggest single thing that makes Lisps unique / distinctive from other languages)
- You'll be able to read Lisp syntax much more easily. It takes a few weeks to get to the point where you "see" the structure of Lisp code, but after that point it gets much easier. You start to ignore the parentheses after a while.
- The development style is similar, interacting with a running environment using a REPL
- They share common idioms, e.g. the use of lists and various functional programming techniques
Problem
Is there any synergy between learning different Lisp languages? I'm currently learning Emacs Lisp, as it is immediately useful in my daily Emacs usage, however i'm fascinated with all Lisps, so maybe someday i will learn and use others. Will learning Emacs Lisp help me, when i start digging in Common Lisp, Scheme or Clojure? In other words, will it be for me like learning a completely new language, or some notions and paradigms are common? I'm also interested in comparison of unique differences between the Lisps, which will be a problem, when i come from one Lisp to another. In How to go about learning Common Lisp and Emacs Lisp? it is mentioned that there will be "wastage", but it is not elaborated, to what degree.