#askfedi I'm starting to learn #scheme as a possible alternative for using #go #golang in the future, especially for servers, backend type stuff. I was wondering if you could recommend a scheme implementation to use. I'm looking for one that is R7RS-compliant and has good documentation. Right now I am planning to use #mitscheme #gnuscheme. Thanks
@fiskfan1999 I prefer #guile over #mitscheme because it is easier to script and shows stack trace's out of the box. Also it supports #r7rs (small). Note that no scheme platform exists that implements r7rs because it is not finished yet.
Andrew Tropin (@[email protected])

A nice overview of #R7RS (Revised Report on the Algorithmic Language Scheme) and a bit of #scheme history. https://youtu.be/y8qaitWSDW0 https://justinethier.github.io/cyclone/docs/r7rs.pdf

Fosstodon
@fiskfan1999 Chicken is practical, though the R7RS support is a little clunky. Cyclone, Chibi are sold compilers, interpreters respectively.

@fiskfan1999
My first contact with Scheme was through Guile, whose documentation is superb, especially if you're used to GNU Info. It's also great if you want to do some low-level hacking in C.

If you're an Emacs user, choose an implementation that is supported by the Geiser package - you can find the list here:

https://github.com/emacsmirror/geiser

I've also used Chicken, Gambit, Racket, MIT/GNU Scheme, and Kawa, and tried Chez and Stalin.

Racket seems the most approachable in general, as it has a fairly familiar IDE and books like "How to Design Programs" or "How to Design Worlds" or "Realm of Racket". Chicken is nice - small, portable and easy to build even on constrained environments.

Gambit is less approachable, but it has very good performance.

I found Chez hard to build initially, but I think now you should be able to install it through most package managers. It's a labor of love and fortune - but not of a community (I think that's where Guile and Racket stand out).

Stalin has the worst user experience imaginable - but it allegedly produces super-fast binaries (if they don't break).

I mostly use Kawa these days, but that's because of the constraints of my project. There's a lot of great ideas in Kawa, but I can't say it's the most reliable implementation out there - its original creator is a bit reluctant to maintain it, as he does other things these days, and there seems to be no one else who'd be willing to take over the burden of maintenance. (That being said, I really love Kawa.)

You may also find these benchmarks useful:

http://ecraven.github.io/r7rs-benchmarks/

If you'd like to use Scheme as a replacement for go, then it seems that performance-wise Chez might be the best option (also, I think that people would love you if you made some decent benchmarks comparing Scheme with golang, and wrote some blog posts that would compare them)

GitHub - emacsmirror/geiser: GNU Emacs and Scheme talk to each other

GNU Emacs and Scheme talk to each other. Contribute to emacsmirror/geiser development by creating an account on GitHub.

GitHub
@PaniczGodek @fiskfan1999 Why not Racket with the Chez backend? Seems like the best of many worlds.
@shriramk And besides @fiskfan1999 runs a website rankett.net, so it's hard for me to imagine him choosing anything else than Racket :)