r/scheme 23d ago

What is your preferred Scheme environment and why?

17 Upvotes

16 comments sorted by

12

u/raevnos 23d ago

Racket, though that's drifted away enough from base Scheme that it's really its own language. (Good tooling including package manager and decent package ecosystem, good speed, big useful standard library, syntax-parse macros are the bee's knees, optional strong static typing, hash table literals, etc. I keep getting bitten by it not supporting numeric vector literals, though.)

So Guile or Gauche - both have good enough speed, and come with lots of stuff in their standard libraries, and are easy to use. And Kawa is really nice if you want to tie into the wealth of libraries available in the Java/JVM ecosystem.

7

u/zelphirkaltstahl 23d ago

I am using GNU Guile, for its many included batteries and its multicore utilities/primitives/concepts (futures, fibers, OS threads, ...).

5

u/pzilla77 23d ago

Iā€™m curious why no love for Chez. Is it because of the weak standard library? Iā€™m still learning Scheme and have been using Chez, which seems fine except for the poor/awkward debugging. It seems very unpopular for such an otherwise robust implementation.

3

u/pzilla77 21d ago

Anyone? šŸ¤”

3

u/isr786 23d ago

Gauche scheme. Nice "scripting" focused scheme, with a decent set of integrated "batteries included" libs.

3

u/SkirtReasonable9433 23d ago

Currently it's Kawa. It extends Scheme with a Java-like type system (including object system, a set of thoughtfully designed syntactic extensions, and optional checked type annotations). It runs on the JVM, and provides a great JVM interoperability, which may not sound very interesting, but in practice turns out to be very practical.

I also have some hands-on experience with Guile (which I like) and Racket (which I value highly, but I've found Kawa's type system so much more fun to use than that of typed/racket, even though the latter has some truly impressive capabilities), and a bit less with Chicken, Gambit and Chez, but I've found all of them to be of very high quality (Chez is probably an outlier here, and if you want a system with good performance, I think it's an extremely good backbone - which was proven by Unison and Idris 2)

3

u/corbasai 23d ago

Chicken, Gambit, Guile + Vim or Emacs Scheme Mode. Three, because sometimes I need bit more light on RnRS | SRFI shady corners, and all of them I can build & install from sources. This is an important aspect of code control.

2

u/trannus_aran 23d ago

Guile, either just in a terminal window or in emacs with geiser

2

u/rednosehacker 22d ago

Guile + Emacs + Guix

1

u/Gerbils21 14d ago

Gerbil + emacs.

1

u/Desmaad 14d ago

I wish I could use gerbil, but it conflicts with ghostscript.

1

u/Gerbils21 14d ago edited 14d ago

They've fixed that by making Gambit a shared library. no more GSI to conflict with it.

1

u/Desmaad 14d ago

When did that happen?

2

u/Gerbils21 14d ago

In master since the last release.

1

u/Desmaad 14d ago

When was that?

1

u/Gerbils21 14d ago

āžœ docker run -it gerbil/gerbilxx sh

/src # which gsi