No, not him. You see, in the beginning, there was the CHICKEN. And the Felix said, “Let there be eggs!” — — and there were eggs.
CHICKEN is a variant of the programming language Scheme. Yes, the one with lots of silly parentheses. No, not that one, that’s Lisp — L ost i n S tupid P arentheses. Scheme is even more alien and, believe it or not, even less usable. Or is it?
If you visit the CHICKEN web site you’ll learn that it strives to be simple, portable, extensible, well documented and actively supported. Hmm, let’s see:
- Simple — simple it is. I was able to install CHICKEN on my Linux box with a single command. On Windows I had to download the source code and (gasp!) compile it to get the CHICKEN — this amounted to 6 — 7 mouse clicks and about as many keyboard hits. Compiling CHICKEN from source is pretty easy if you follow the readme. Also, CHICKEN has recently been upgraded to a version 5 and there are three-click installers available for the previous version (4) so it’s fairly safe to assume that a few will pop up for the current version as well. JUST BE PATIENT.
The editor. Ah, Emacs, the cause and the solution to all life’s problems. Yes, Emacs is still the best choice for the paren language family. You can compromise and use VS Code, Eclipse, JEdit or a number of text editors that support syntax highlighting for Scheme. A bit of a minus — not that there is much syntax anyway.
CHICKEN comes with several executables: ‘csi’ is the CHICKEN Scheme interpreter which starts the REPL a loop that all Lispers love but few can explain why. ‘csc’ is the CHICKEN Scheme compiler — it produces native executables. Yes, you can use CHICKEN to make standalone executable programs. THIS IS BIG. ‘chicken-install’ — you can use that one to install external CHICKEN libraries (they are called “Eggs” of course). ‘chicken-install’ pulls the eggs’ source code from the CHICKEN’s central repository, compiles it and makes it available for you to use. This work great most of the time, except some eggs have external dependencies (the SDL graphics library for instance) that you have to install yourself before installing the eggs in question. Also note that ‘csc’ chashes with ‘csc’ the C Sharp compiler so there is a possibility that ‘csi’ and ‘csc’ are called ‘chicken-csi’ and ‘chicken-csc’, so there’s that.
All in all CHICKEN is simple enough as long as you put in some work — just about as any other programming environment I guess.
- Extensible. The eggs. The best part of CHICKEN.
Need a GUI? CHICKEN’s got you (almost) covered. The favorite CHICKEN GUI library seems to be IUP (made by the Lua guys) but I haven’t been able to install it on my Linux due to the dependencies I mentioned earlier. On Windows, CHICKEN did come pre-packaged with IUP in its previous release (4). On the other hand the Tk (Tkinter, Python, hello!) bindings work very well and if you find that too limiting you can always use the Java Swing (and probably JavaFx but I haven’t gotten around to trying that one).
Want to do some Web dev? That’s awful. Haven’t done more than the Hello World with Awful, but it’s there and it works.
Well, CHICKEN is extensible and extended. Just have in mind it’s a small community that builds libraries for their own needs — that one thing you are looking for might just be the one that’s missing.
- Actively supported. In that case just ask the guys themselves. There is a mailing list called chicken users here. The list is not crazy active but it is very responsive — I posted a couple of questions there recently and received an answer — directly from the man who hatched the egg, so to speak. There’s also an IRC channel, but I haven’t visited. Also, don’t be surprised if you run into the people from the CHICKEN team on Stack Overflow and Reddit (over on r/lisp and elsewhere)
- Well documented. That’s an understatement. There is:
All in all CHICKEN is highly recommended. Just look at the little fella: