4 ms·
Gerbil (built on Gambit) has a really impressive-looking standard library (probably the biggest reason most Schemes don't get great adoption). It's got builtin
by eatonphil 4y ago
Gerbil (built on Gambit) has a really impressive-looking standard library (probably the biggest reason most Schemes don't get great adoption). It's got builtin JSON libraries, HTTP server and client libraries, protocol buffers, database drivers (builtin MySQL and PostgreSQL), etc.
https://cons.io/reference/ https://cons.io/reference/
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.
- jgon 4y agoDoing a little bit of digging into the Gauche manual would have led you to a listing of the various utility libraries that it offers: http://practical-scheme.net/gauche/man/gauche-refe/Library-modules-_002d-Utilities.html http://practical-scheme.net/gauche/man/gauche-refe/Library-m... As you can see it is pretty extensive, and could likely handle most of the needs you mentioned in your comment. I would call this pretty “practical”.
- bicolao 4y agoOr this [1]. A bunch of gauche.* modules are not listed there. [1] http://practical-scheme.net/gauche/man/gauche-refe/Module-Index.html http://practical-scheme.net/gauche/man/gauche-refe/Module-In...
- mhitza 4y agoI'll have to give Gerbil a second look. I've written some small programs with Chicken Scheme (which honestly should be in any practical scheme list IMO) and while the standard library is not that big (my pet peeve as well with most languages) I really liked a scheme I could statically compile into a binary. 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.
- eatonphil 4y ago> I've written some small programs with Chicken Scheme (which honestly should be in any practical scheme list IMO) 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.
- mmcdermott 4y agoI hadn't heard of Gerbil. The last Scheme I really hacked with was Chicken Scheme, but now I want to give Gerbil a run and see how it compares.
- ar-nelson 4y agoFrom my experience working on Schemepunk, Gerbil has a lot of interesting functionality but it's also very immature. Frequently modules will not quite match their documentation, or a simple mistake will cause a segfault. I wouldn't feel comfortable using it in production for something internet-facing.
- bsima 4y agoSchemepunk is awesome, thanks for making it! I’ve been meaning to attempt porting it to guile when I get some free time one of these days
- ar-nelson 4y agoiirc I wanted to port it to Guile originally but there was one major bug in Guile R7RS support that was stopping me. I think it was something about the way imports were named. I submitted an issue but it languished for at least half a year, I think because the dev in charge of that part of the code was busy with something else and not actively working on Guile. I haven't looked at the issue in a couple years, maybe it's fixed now. 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 https://debbugs.gnu.org/cgi/bugreport.cgi?bug=40252)
- hajile 4y agoMost Schemes have a very large standard library, but you have to know that the standard library is referred to by SRFI -- a bunch of random numbers rather than names. 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.