I am proud of my fellow developers that did all of the work. We have come a loong way for CHICKEN 5 and this is really an exciting release. So please help testing this and give us some feedback!
“A practical and portable Scheme system”
From the website
(The post and the linked email didn’t give me any idea what Chicken was.)
The way I remember it is it’s the Scheme that compiles to C for speed and portability. silentbicycle posted this interview with the author. aminb added someone’s blog posts on interesting work.
I believe it’s package ecosystem is better than other schemes as well.
Thanks! I was over here saying “wtf is chicken”
Wait, we have a Chicken developer here. Why speculate… Hey C-Keen, how would you briefly pitch Chicken vs other Schemes to someone that already knows a little about CL’s or Schemes?
EDIT: There is an elevator pitch on the site but I was just curious if C-Keen would say anything different.
There are some technical differences in the compiler design for example. CHICKEN uses cheney-on-the-mta CPS compilation for implementing scheme in C. But for the user the most outstanding difference is that it generates host binaries, that are easy to distribute.
With CHICKEN 5 these binaries as well as core itself are built reproducably. Also cross-compilation is a feature of the system.
Because CHICKEN compiles to C, FFI into C is really really easy and there’s schemely syntax support for doing so. Wrapping your favourite library becomes an easy task allowing an explorative approach to understanding your problem while using your external library from the interpreter.
In the previous version a lot of external modules that provided functionality (called eggs have been written by chicken users). For the next release the most important and used ones are already ported or a work in progress.
Chicken scheme has a small but newcomer friendly and live community. You can easily reach us on #chicken on freenode or via our mailing lists.
From the language point of view scheme vs. CL comparisons apply (lexical scope, continuations, hygienic macros, yadda yadda yadda)
There are many more and I have glossed over a lot of things. Let me know if there’s some special topic you’d like to know more.
Thanks, that is informative.
Exploring C libraries from a REPL is really cool.
I am interested in personal opinions about CHICKEN vs Racket. I want to get into one of them but I am not sure which one. I am looking at them from the point of view.of someone who likes developing web and apps. Can anyone share some of their experiences with me?
Caveat: I’m a CHICKEN user.
Racket is a kitchen-sink/batteries-included kind of Scheme that compiles to bytecode that runs in a virtual machine. It’s got the largest Scheme community and ecosystem by far. It seems to excel in GUI in particular. It also has its own varieties like Typed Racket and Lazy Racket, which are quite neat. (You could argue that Racket is a separate dialect of Scheme at this point, as it doesn’t exactly follow the RnRS.)
CHICKEN is a much more minimal Scheme dialect that compiles to C. It’s fast and portable, and the compiled applications are very easy to deploy elsewhere, given you bundle libchicken.so with the executable (or statically link it). It has a very clean C FFI. It implements most of R5RS with growing R7RS support.
Honestly, if you like developing web apps, I’d personally recommend Racket since it has a sizable and mature codebase for web dev, mostly using a sublanguage called Insta.
On top of other comment, Racket has advantage of How to Design Programs written for it.
What does this mean?
The book How to Design Programs is written by Racket authors and uses Racket throughout.
Ooh, thanks for the context! :)
I find chicken and admirable Scheme implementation, even though I haven’t used it in a while. One thing I’d like to know: did compiling programs with multiple source file get easier?
Yes, you can use the egg specification for that now.
Also infrastructure helpers like the ‘make’ egg have been ported already.