Realm of Racket
nostarch.com
nostarch.com
That said, lest I be perceived as too negative, I am very excited that this book is being published. Racket has always stricken me as very clean and friendly (two adjectives less applicable to CL), and advancing Lisp enthusiasm in any form is never a bad thing. Cheers!
In particular, a few years ago the Racket team made many structures immutable, to promote functional code and enable some optimizations. The language has the mutable versions, so you can use them if you like.
So your objection is unfounded - CL is not primarily FP oriented, but it was not CL that the author of the quote meant when writing the word "Lisp".
Even today, languages make it clear where they're coming from. The claim to fame of Clojure is that it's a) a Lisp that b) uses FP to make many things easier, notably but not exclusively concurrency (and, as a result of the FP focus, a big difference between Clojure and other Lisps is that by default it uses immutable data structures) and c) runs on the JVM.
Note that the emphasis on FP is something Clojurians use to draw in Lispers from other dialects. Similar arguments could be made for Shen, Qi, etc.
The unique selling proposition of Lisp as a whole is that it's homoiconicity lets you treat code as data and exploit that using macros and such. Racket illustrates this beautifully--from what I've seen it's common for a library to introduce new syntax and such. The unique selling proposition of Lisp is not that it's darn good at functional programming--that's just a very fortunate side-effect.
I really, truly, wish the CL people would stop claiming that Lisp is restricted to a set that doesn't include LISP 1.5.
Common Lisp is basically a modernized version of Maclisp, integrating existing research/implementation on other Maclisp successors (NIL, Lisp Machine Lisp, ...).
The Lisp of the past two or three decades is
fully multi-paradigmatic. It supports a
functional style...
Then, by your definition, it's not dishonest to say that "Racket retains the functional goodness of Lisp."I don't understand. What's the problem?
What if I said C++ retained the imperative goodness of C?
edit To follow up - got the book and have been reading through it. Already super impressed with the tone, pictures, lisp history lesson, and particularly the cartoon of guy and gerry!
EMACS : text editor
Racket : programming language
This is to say that Racket comes with enough batteries to make it a platform...or at least Racket is striving to achieve cradle-to-grave coverage. It doesn't just come with tutorials, but a complete programming course - How to Design Programs.It comes with tools for building languages, creating presentations, and writing documents. No email, though (yet).
Racketeers are eating their own dog food. The Racket Way video gives a good introduction: http://www.infoq.com/presentations/Racket
Actually, it does do e-mail. :) https://github.com/mflatt/sirmail
Or if you want SMTP/IMAP libraries, you can look here: http://docs.racket-lang.org/net/
No Starch is probably my current favorite tech book publisher, I've yet to run across anything less than great under their label and I've been using DrRacket recently to work through SICP.
I couldn't resist getting on with the ebook yesterday and noticed my 5.3.4 install didn't have the realm dir.
They've complained that textbooks and courses often don't teach how to build anything directly useful, but video games? Suddenly, no holds barred.
Is Racket so much better that it's worth learning compared to Haskell, Erlang, Go, etc. ?
Can someone comment on what unique insight or benefit I might gain from learning Racket and from this book?
The author team really consists of eight students and two 'old' people: David Van Horn and myself. As is tradition in my lab, young people go first and 'old' people come last on an author list. Everyone knows us already anyway.
Enjoy! -- Matthias
I am very excited for this book as I do prefer the cleanliness of Scheme to CL.
Is it really, I know that racket is a scheme implementation, I thought scheme is to lisp what java is to c++, a saner less powerful version
While it's tempting to think of Racket as a Scheme implementation, and that was at one time true, the situation these days is quite different. It's a lot more accurate to say that Racket ships with a Scheme-like default language (and an actual R5RS-compatible Scheme), but that it's actually a wonderful language toolkit. Racket has the ability for individual modules to use their own syntax. Not macros; full-fledged syntax. Racket ships with several Lisp-like syntaxes, but it also ships with Datalog and ALGOL-68. And this is very much unique to Racket.
So there can be many unique things.
Also, it could be argued that the last element is the "most unique" in that it has less similarities with the other members.
Racket is not a Scheme implementation, which is one of the reasons it is now called "Racket" (Scheme used to be part of its name.)
It is a Lisp dialect that is "a descendant of Scheme". The Racket distribution includes support for a variety of different languages (including implementations of R5RS and R6RS Scheme), but the Racket language is not a Scheme implementation.
[1] http://en.wikipedia.org/wiki/The_Most_Interesting_Man_in_the...
Looking back at the site it only says it before you click buy. I didn't read the description before I started the checkout.