I know there are lots of other ways to work with SBCL, but they are either second-class citizens or paid.
I know there are lots of other ways to work with SBCL, but they are either second-class citizens or paid.
Alternatively try geany-lisp[1], it was created specifically for those with emacs phobia. There are probably some sharp corners using it, so feel free to file issues if you run into any. It should work with Geany 1.26-1.38; when posting this, I just noticed that there is now a Geany 2.0; I'm assuming the major version bump broke plugins so it may not work anymore.
Portacle, https://portacle.github.io/ , is a way around config and whatnot, lowering the threshold a little.
It has a lot of other goodies like : Org, Magit etc which makes it worth while.
This is what I stick at the top of my Lisp files when dabbling.
(defun l ()
(load "file.lisp"))
(defun e ()
(ext:shell "vi file.lisp"))
And then I just muddle my way through with a (e) and (l) cycle. Since I tend to not work on 10,000 line files -- this works fine (my files are < 5K lines). More than fast enough, and I get to retain any work variables within the image (plus my command history). It's quite effective really. (print...) debugging works because you can run your code at whatever granularity you like (and you can always refactor it to a finer grain if you want). Don't doubt it until you try it. Turn around is very fast.That said, I discovered that for some reason, firing off something as simple as "vi file.lisp" from SBCL is stupifyingly complicated. I made several 10s google searches and 5s GPT attempts to make that work, but gave up.
So, can't say I can recommend that style of development in SBCL unless someone is willing to chime in with the, apparently, paragraph of code necessary to launch vi on a file.
(require 'uiop)
(defun c ()
(uiop:run-program '("emacs" "-nw" "file.lisp")
:output :interactive
:input :interactive))
EDIT: note that SBCL comes with UIOP included by default, but if you want to use SBCL's implementation-specific facility, it's only slightly different: (defun c ()
(sb-ext:run-program "/usr/bin/emacs"
'("-nw" "file.lisp")
:input t
:output t))Neither ends in a working development environment or even text editor.
Compare this to learning Python or Javascript or the C family. VSCode or even just your standard OS text editor is all you need. You can decide to start learning, find a tutorial on Youtube, and execute your hello world in 60-120 seconds.
What I'm complaining about is that it's much harder to "check it out" than it perhaps could be.
At one point many years ago, I wanted to check out this new Python thing. It was so easy, I've been hooked ever since.
I can't argue with that. It did take me a long time to get comfortable with Lisp. But I felt it was worth the efforts.
IDLE is a underrated feature of Python. The default install includes a barebones IDE together with the REPL, making setup for beginners nearly zero effort. On the other hand, in lisp land, step 0 to learn most lisps is to learn emacs beforehand.
Also, knowning CL makes learning Elisp a breeze, so you can customize your editor like nothing else.
https://susam.net/lisp-in-vim.html
Not 2nd class and I can use it mostly on mac; linux and windows (linux side)are ok. All good.
I have the same problem with Hylang.