Following is a list of programming languages I intended to learn in the future, including those I'm already learning or have learned. The list is in particular order.
- Implementation: SBCL/PLT-Scheme
- Lisp is fantastic once you have started. The parenthesis syntax is simply beautiful: simple yet powerful. I started to touch upon Lisp (actually Elisp) in last year, with the intention to be able to configure Emacs in a more free way. Unfortunately I still have not finished the Elisp introduction document which accompanies Emacs distribution and I will finish it in the near future. Afterwards I was attracted by Haskell and devoted nearly half a year to learn it, with the focus on migration my C++ simulator to Haskell. Early this year, when I was browsing reddit as usual, I found this post, which proposed the analogy that hacking Lisp is like riding a bike. I was curious about such metaphor and decided to try myself. And the result is that I'm now a big fan of Lisp. I've almost translated all my Haskell code to Common Lisp, migrated many C++ files too, and added many new functionalities to my simulator. Lisp is just wonderful! It really grows into you. I have read Practical Common Lisp (although I skipped almost all the practical examples and will come back to them later), and now nearly finished On Lisp.
- Book list for further reading
- SICP: a must read. Free book available. The video lectures are of great help too.
- PAIP: I'm also interested in AI and also a fan of Peter Norvig. So I may purchase this book although it is somehow expensive.
- Object-Oriented Programming in Common Lisp: A Programmer's Guide to CLOS: I use CLOS a lot and like to be shocked by the book.
- AMOP: A fancy text I heard of.
- Lisp In Small Pieces: A must read for Lisp/Scheme implementation.
- Lisp 1.5 Programmer's Manual: Definitive manual for ancient Lisp?
- Ansi Common Lisp: This book might not be so advanced compared with books listed above, but I really like the articles/books from Paul Graham.
- Other nice scheme books, especially the series: The Little Schemer/The Seasoned Schemer/The Reasoned Schemer, and How to Design Programs.
- Implementation: Mozart
- It seems that Oz encompasses almost all the programming paradigms therefore it would be nice to try.
- CTM seems to be the book to try.
- Implementation: swi-prolog
- Another AI language. It seems that many Lisp books (e.g. On Lisp, PAIP) try to build a Prolog interpreter/compiler and then use it to solve problems. It might be of great fun to directly dive into Prolog.
- Implementation: Squeak
- Quite shocked during the first use of Squeak 3 years ago.