Scheme Development Environment

I’m currently evaluating Scheme development environments. More specifically, I have a look at Racket and GNU Guile. I want to have something that works on my Linux machine, but as well on my Windows machine using WSL. I do not need a fancy IDE yet. To get started, I think it is enough to have an editor with syntax highlighting and some REPL. I intend to use Vim and Emacs for now to write my Scheme code. Both offer some default syntax highlighting as well as several plugins to get some more advanced language support, if needed.

Racket has a graphical environment called DrRacket. However, I do not want to get used to it, because I do not want to depend on it. Installation of Racket is pretty simple. To get the latest version, I downloaded Racket from their website and installed it to /opt. Installation can be done without administrator rights. Then I created a symbolic link to the racket executable in my ~/.local/bin directory. That’s enough to have the REPL in my executable search path. When run interactively, Racket will load a initialization file from ~/.racketrc. For now, I’m not using it though.

Because I could not find pre-build releases on their website, I installed Guile with apt-get. Unfortunately I got a version that is more than one year old. As I prefer not to build Guile from scratch using the provided tarballs, I have to live with this old version for now. When installing with apt-get, you have to choose the major version you want to use. So you have to do apt-get install guile-3.0, for example. Apt added Guile to my /usr/bin directory. So it is in my executable search path as well.

When run interactively, Guile will load a initialization file from ~/.guile. As Guile does not enable readline support by default, at least Guile 3.0 does not, it is a good idea to add the following lines to your .guile file.

(use-modules (ice-9 readline))
(activate-readline)

Now I have a (somewhat minimalist) development environment with Vim and Emacs for writing Scheme code and Racket and Guile REPL to execute the code. I like the very easy installation of Racket. Let’s see how far I can get with this setup.

Comment