Practical Scheme
practical-scheme.net
practical-scheme.net
Actually looking at the libraries on this page for Gauche and comparing it to Gerbil, Gerbil seems way more practical for the kind of web/data work I normally do.
The only big extensions this page lists on top of R7RS libraries (which are fine for programming but don't include much for typical development work on web/data/etc) seems to be for programming desktop apps.
So for me the most practical Schemes (because of built in libraries) I can think of are Gerbil or Racket. But it's been a while since I've looked into Schemes.
[1] http://practical-scheme.net/gauche/man/gauche-refe/Module-In...
For my project I also wanted to have some untrusted user code execution sandbox, and found such libraries for both Chicken and Guile. While the later one had better/fine grained execution environment options, Chicken won because of the possibility to easily compile.
Yeah I've done some work with it too and I considered including it in my list except for exactly:
> the standard library is not that big (my pet peeve as well with most languages)
Not putting down any of the implementations. It's just that Gerbil and Racket have the most built in AFAICT.
And thanks!
(edit: I looked it up, they merged my fix for the bug in May 2021, maybe supporting Guile would be feasible now? https://debbugs.gnu.org/cgi/bugreport.cgi?bug=40252)
They don't list docs either. You have to know that you must go to the SRFI website and look up the API from the spec itself.
I believe this has single-handedly done more to hurt scheme than any other thing the language has done.
The idea was to make a standard library as widely compatible with existing Schemes as possible. If it worked, then I could write code (with this library) that was "just Scheme", not a particular implementation, and would run equally well on any Scheme. And it would make bootstrapping new Scheme implementations easy: all you'd need is a bare minimum of R7RS Small functionality, and Schemepunk could do the rest.
I haven't worked on it for a while, since I've moved on to other things. But I still think the idea has a lot of potential.
If you want to start with practical Scheme, consider starting with one that has a community actively using it (and growing the open source libraries, and creating reason for the core to be maintained and maybe developed).
The most obvious one is Racket, and there's also Chicken, Gerbil, Guile, Gambit, and a bunch of others. Beware: there's also a ton of personal side projects (making your own Scheme is a rite of passage), and a lot of abandoned things (often great, but still abandoned).
100%.
The ecraven benchmarks though are a good test of completeness (can the implementation actually run all the tests?) and quality (what is the ranking of the implementation): http://ecraven.github.io/r7rs-benchmarks/.
Not that using another Scheme for your stuff would seriously hamper you from using Guile in Guix anyway.
Also, Akkuscm exists now, so you can get free r{6,7}rs libraries for most scheme implementations from there, in a sane, pragmatic Scheme environment.
In fairness, they stopped calling themselves a Scheme for a reason. More innovation in the Lisp space is a good thing.
https://www.monolune.com/articles/running-scheme-programs-us...
But Racket is built on top of Chez Scheme so you can also use that directly if you just want a Scheme.
It provides packages written in any Scheme, which you can use from any other Scheme (which works because they follow the same specification (R6RS/R7RS))?
That's pretty cool.
Because as well as transcending Scheme, it includes Scheme (both r5rs and r6rs are bundled.) There are also third-party r7rs implementations.
So I think it gives Racket a reasonable run for the money.