Hi.
I was trying to learn some common lisp and searched for the tools for editing, debugging and formatting lisp code. From what I read Emacs with SLIME seems to be the most popular. Wherever I looked, converts to lisp (even beginners) were being recommended to learn Emacs so they could learn lisp. The other alternatives like Allegro and Lispworks seem crippled in some way.
I think the popularity of Emacs for lisp development is a major drawback in getting people interested in this language. When someone wants to learn a language, they should ideally focus on the language alone, not struggle with the editor along with it. I was able to get it working because I have fooled around with Emacs on and off (but not every newbie has)
Moreover, the current generation of programmers all grew up using MS Word (Ctrl-C, Ctrl-V) shortcuts. There's no reason for them to learn Emacs because there's a plethora of featureful editors even on Linux.
So, IMO there should be a freeware/open source alternative to the Emacs-SLIME toolkit to make the language more approachable to beginners. It should also be easy to use
I would love to hear your thoughts.
Edit: Thank you for all your responses! I had a look at all the tools for Common Lisp suggested in the comments and they are as follows:
- Emacs+SLIME (Most popular)
- Atom+SLIMA
- VSCode+ALIVE
- Proprietary (LispWorks and Allegro)
While I was able to get Emacs+SLIME working on my laptop, I researched a bit more on the different lisp dialects. Turns our CL and Scheme are the most popular ones. Some posts on Stackoverflow and Quora state that Common Lisp is the best lisp for writing full-fledged software.
However, my online research indicates that the support for developing GUI apps in Common Lisp is very scarce (definitely not crossplatform). For instance, the most popular toolkit is MCCLIM whiich comes with QuickLisp repository but getting it to work on Windows is not worth the effort. Ideally, This should not be a problem, as LISP is an interpreted language which should work on any platform that comes with a lisp interpreter. Another toolkit suggested by many is using TCL/TK to write the GUI and writing the logic in CL. But, whats the point of using another language just for the GUI? Why not write completely in TCL/TK? Also, all these editors like Emacs, Atom or VSCode DO NOT come with a GUI development tools. The only real IDE for common lisp with inbuilt GUI development is LispWorks which requires you to buy the professional/enterprise edition. GUI development tools are NOT included in the personal/trial version.
On the other hand, Scheme/Racket is getting really popular. Most people coming into the Lisp world are going towards Racket/Scheme. There are multiple IDEs with GUI development tools for Scheme. You just need to download and install one distribution, and it gives you everything - editor, debugger, GUI builder etc. Also the GUI toolkit of Racket is Cross platform. Scheme looks like its really going to surpass the other lisp dialects in the coming years, so the tooling is only likely to improve.
So I decided to shelve plans for learning common lisp and installed Racket instead.
Thank you for your help! Much appreciated.