The last few months I've been using Emacs extensively as my main development environment and I've now come to a point at which I'd like to learn it's own Emacs Lisp to write my own little stuff for Emacs and extend it to my personal needs.
Having said that I've also wanted to learn Common Lisp for a while now, to play around with and explore a new language. My question is, where should I start from? Will Emacs Lisp give me the necessary knowledge to pick up Common Lisp later more easily or the other way round? I'm basically interested in the efficiency of each path so as to minimize the learning curve when I finally decide to move from one dialect to the other.
For Scheme, go for Kent Dybvig's Scheme Programming Language, followed by SICP. For Common Lisp, as well as Practical Common Lisp, I'd recommend David Lamkins's Successful Lisp. Successful Lisp is also available online for free. After than, look at Lisp in Small Pieces by Queinnec, and Norvig's Lisp in AI book.
By default, Common Lisp is lexically scoped, that is, every variable is lexically scoped except for special variables. By default, Emacs Lisp files are dynamically scoped, that is, every variable is dynamically scoped.
Lisp isn't hard to learn. It can be taught poorly, and it does have some "high level" concepts, especially if you're coming from the imperative "classic" programming world.
Start with Emacs Lisp (given that you seem to have already started customizing your emacs) - it seems to be more immediately useful for you.
Do keep in mind that there is quite a bit of difference between Emacs Lisp (there is a lot of buffer management stuff, especially in the code you're likely to see in the wild) and Common Lisp (more similar to a general purpose programming language), so which ever route you take, expect some amount of "wastage"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With