If you're interested in web programming in Scheme, but not interested in using Guile for some reason, you might also be interested in Awful (http://wiki.call-cc.org/eggref/4/awful), which is Chicken Scheme's full-stack web framework. Chicken is especially interesting to me, and has been a go-to tool for me for years, due to its ability to compile natively (and statically!) on Windows and Unix systems. (Guile, on the other hand, has always struck me as what I wanted Common Lisp 10.0 to look like. Ah well.)
Nothing has to be wrong with CL for me to prefer Schemes or vice-versa, and nothing has to be wrong with OCaml for me to prefer F# or vice-versa. My preference for Chicken Scheme over CL historically has been:
* Chicken has always been free, with almost all of its
library BSD-licensed, whereas CL used to be expensive.
* Chicken has had a really good packaging story (eggs) for
a long time, whereas QuickLisp is new
* Chicken has always been able to produce static binaries,
which, as the Go aficionados will tell you, makes deployment
really awesome.
If you prefer SBCL, good for you. There was a post fairly recently about how CL's library situation is becoming awesome, and I hope that continues.
Chicken Scheme is a specific Scheme implementation, Common Lisp is a language with three dozen implementations.
Free CL from day zero: CMUCL. CMUCL originates in Spice Lisp (1980), from before Common Lisp. CMUCL has spawned commercial and free variants (SBCL).
Free: CLISP, 1987. Free: GCL, 1994.
Still, Chicken Scheme is great! Though I prefer CL.
Nothing. But Schemers just passionately hate it since the 70s because it doesnt enforce their religious dogmas like recursion, continuations, unusable macros, and other similarly silly pretexts.
The fact that the GNU extension language became a Scheme instead of a Lisp is primarily a very personal decision by Richard Stallman. Early Lisp Machine companies like Symbolics refused to copyleft their stuff, so RMS started to hate them with a passion.
So even as he was a Lisp fan early on, which can be seen in Emacs, he for political reasons switched the GNU projet to Scheme, even as the GNU project had no working Scheme implementations but had two Lisp implementations (CLisp and GCL).
So to answer your question: Nothing is wrong with Lisp, but the dear leader hates it, because the Symbolics guys were meanies when he was 25 yrs old.
You might want to read a less harried account on the history of Scheme than this.
Wikipedia names continuations, tail recursion in the standard, hygienic macros and a shared namespace for variables and procedures as defining differences between Common Lisp and Scheme.
Wow, your comment history is really full of classic troll stuff. "HN is throughly infected with the communist delusion, commonly observed with atheist intelectuals." Check yourself, dude.
Off-topic, but does anyone have a userscript or userstyle to make Google Groups responsive and fast to load? It requires JavaScript and takes ages to load a thread and is hard to use once loaded. Googling for "fix google groups" doesn't yield anything.
I only got the default mysql working, but not sqlite. A flatfile backend would be more interesting than SQL dbs only.
And it looked pretty unstable to me.
He is using `script` instead of `sh` in the makefile.
And then `guile examples/blog.scm` throws various errors: "Seems the conn-pool wasn't well initialized!"
Looks like I need to play a lot more with the configuration. But I like the backtrace.
The other day I mentioned in freenode's #web that it'd be hilarious to see a web framework in scheme.. And now it has happened and it's not only making me giggle, but making me thoroughly impressed. Nice one!
I really do not get your point. Scheme is a real programming language, and there are multiple web framework for it to. You can find web frameworks for Guile, Racket, Chicken Scheme, Gambit, Bigloo, …
The portable lib SLIB (a Scheme library that works across many Scheme implementation) also provides a lot of useful things for web development (html generation, database management, etc.).
Racket was called PLT Scheme until 2010, and remains essentially a Scheme dialect. It diverged in part because of their disagreement with the minimalist direction of a large part of the Scheme community: PLT developers were heavily involved in the R6RS version of Scheme, which expanded the language's standard library considerably, but which much of the Scheme community rejected. Racket in part is the continuation of the R6RS "batteries included" philosophy, but removed from the politics of the Scheme revision process. (Another reason for the change was the emphasis on becoming a platform for language implementation that supports multiple languages, some increasingly divergent from Scheme, like Typed Racket.)
The core of Racket, its syntax and basic constructs, is basically the small and elegant Scheme we all known and love. What set Racket apart is all of the additional features that was built around that tiny core (its own OO system, for example), as well as a huge standard library.
Racket is far closer to Scheme, from which it derives, than it is to Common Lisp -- which is why, before it was called "Racket" it was PLT Scheme. (And, in fact, the Racket tools include support for both r5rs and r6rs Scheme -- but not Common Lisp -- as well as the Racket language itself.)
I would love to explore more lisps. I've learned a lot about clojure recently and scheme has always felt like the natural evolution into more classical lisp.