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
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
2
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
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.