3 ms·
For those who use Chicken Scheme: what made you pick it over other Lisps? What are some things it does particularly well?
by rmunn 2mo ago
For those who use Chicken Scheme: what made you pick it over other Lisps? What are some things it does particularly well?
- whartung 2mo agoThe compiler. That’s the gem of the system. The generated C is reasonably portable, so you can run Scheme programs on systems that “don’t run Scheme”.
- ziotom78 2mo agoAbsolutely. And eggs too [1]: these are libraries provided by the community, very easy to import and use. [1] https://wiki.call-cc.org/eggs https://wiki.call-cc.org/eggs
- rmunn 2mo agoWhat happens if you try to run Python eggs under Chicken? Do you get Roko's Basilisk? :-)
- sph 2mo agoPythons are too cold to hatch Chicken eggs, and viceversa
- shakna 2mo agoJust to run with the joke - one project I worked on was a CPython extension. We used Chicken to build out our library to do some rather hacky things and bring async/await to Python before it supported it. And we did call it basilisk.
- hellcow 2mo agoThe eggs are great. For instance I can be up and running building an SDL2 game or make a webserver quickly. It has good emacs support with geiser-chicken. Because it compiles down to C the FFI provides a lot of nice ergonomics beyond what I get with Chez Scheme. Error messages are actually useful with a stacktrace. Can't overstate this. It supports optional type definitions which reduces the number of tests I need. The docs are adequate, though I frequently add "MIT scheme" to my search queries. I wasn't able to get chicken-doc setup in NixOS, and the docs website has gone down on me a bunch lately. I wish Chicken had complete documentation available including its eggs in an offline format, like a PDF.
- anta40 2mo agoWhat about Gambit? Perhaps it's a better, optimizing compiler but the built-in library is rather minimalist?
- dleslie 2mo agoIt has good emacs support with geiser-chicken. I wrote the initial support for chicken some 11 years ago; it wasn't _great_, but I see that Jao and others have worked on it some since then. Glad to see it's working well!
- atemerev 2mo agoSelf-contained, compact, compiled, fast, ready to use. SBCL is not compact and its "image" concept is not universally liked by everyone. Guile and Racket are not fast (nor compact). Chez Scheme is not "ready to use".
- tonyg 2mo agoIn many benchmarks, Racket is significantly faster than many other Scheme implementations, including Chicken: https://ecraven.github.io/r7rs-benchmarks/ https://ecraven.github.io/r7rs-benchmarks/ This is because it is now based on Chez. It is certainly not compact, though.
- cheshire_cat 2mo agoWould be interesting to see how Crunch [0][1] does on that benchmark. Any plans to add it to the benchmark? [0] https://news.ycombinator.com/item?id=49252127 https://news.ycombinator.com/item?id=49252127 [1] https://wiki.call-cc.org/eggref/6/crunch https://wiki.call-cc.org/eggref/6/crunch
- drannex 2mo agoRacket may be significant faster than many, esp since transitioning to Chez, but its still very hard/problematic to compile to a binary, and if wrapped into a binary still very bloated in size. FWIW: I enjoy working with Gambit, especially since it can compile to C and standalone binaries and also scores even higher than Racket.
- anthk 2mo agoWell, SBCL can just use sources just fine. On Guile not being fast enough, it got a JIT since version 3 and it can be pretty fast. It must be, you know, because if not Guix would be even slower.
- mario-goulart 2mo agoTo me it is the combination of what is listed in https://www.call-cc.org/ https://www.call-cc.org/.