I'm a Common Lisp programmer, and am beginning to get tired of phrases like "But while Racket retains the functional goodness of Lisp, ...". It's becoming increasingly dishonest to peddle Lisp as a functional language that stands in contrast to, say, Ruby or Python or what have you. Yes, Lisp has very functional roots. But that was fifty years ago. The Lisp of the past two or three decades is fully multi-paradigmatic. It supports a functional style, but it supports other styles (object-oriented, imperative, ...) just as well if not better. Haskell is functional. ML is functional. Heck, Clojure is functional. If my only attraction to Lisp was FP I'd be using one of those languages instead.
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 Scheme and Racket it's more idiomatic to use the functional version. It isn't enforced by the language. For example you can use imperative code locally but usually try to enclose that in an apparent functional procedure.
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.
Apparently on sale today with coupon code RACKETEERS making it like 23.97 for both print and ebook! I feel like I am a marketing shill or something but for real that is a great deal and I have been looking for a racket/scheme book to use for teaching!
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!
This is totally mega uber awesome as I am br0k3 right now and this saved me mega $$$$$. TY Shaun. My code mate Luis Borjas will appreciate this also. Maybe I should even forward this to the Hacker School students.
The best way to describe Racket is as an ecosystem. The analogy I would make:
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).
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.
There's a new release of Racket to go along with the book. It comes with a library ("collection" in racket-speak) with the source code of the book examples. http://blog.racket-lang.org/2013/06/racket-v535.html
If you're going to put the effort, I'd choose Clojure. It's still a Lisp but a lot less awkward than most dialects and has a very rich ecosystem (and Java interop, which is both good and bad).
I'm tempted to buy this for friends. I started seriously programming after taking a class taught by Fellesien using How to Design Programs (http://htdp.org/)
It is not just like Land of Lisp, it seems to be just Land of Lisp ported to Racket by a group of students supervised by Conrad Barski and Matthias Felleisen. Barski and Felleisen arent even credited as the primary authors of the book.
"Land of Lisp" is actually what turned me on to PG/HN/startups a few years ago. I believe there was a passing mention of PG somewhere near the beginning and that got me started reading essays.
I am very excited for this book as I do prefer the cleanliness of Scheme to CL.
Quite surprised by a high cost of shipping a printed book to Canada - $19.95 per item that almost doubles the cost of the whole purchase. eBook it is...
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.
> Is it really, I know that racket is a scheme implementation
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.
It's got standard macros, plus all of the other "languages" that come with it, like Algol, Typed Scheme, Lazy Scheme, Honu?, and others, plus the ability to make it run languages of your own design. So, I would agree with that. Maybe not if you're strictly talking about the main language "Racket" that's run by the Racket VM.
Apart from the merits of Racket (which are considerable, you couldn't build Typed Racket in CL), the "most unique programming language in the world" is a joke about the Dos Equis ads [1].
[+] [-] tsm|12 years ago|reply
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!
[+] [-] gcr|12 years ago|reply
I don't understand. What's the problem?
[+] [-] gus_massa|12 years ago|reply
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.
[+] [-] shaunxcode|12 years ago|reply
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!
[+] [-] syntacticsugar|12 years ago|reply
[+] [-] cosmez|12 years ago|reply
[+] [-] Nekorosu|12 years ago|reply
[+] [-] brudgers|12 years ago|reply
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
[+] [-] takikawa|12 years ago|reply
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/
[+] [-] incision|12 years ago|reply
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.
[+] [-] omaranto|12 years ago|reply
[+] [-] derengel|12 years ago|reply
I couldn't resist getting on with the ebook yesterday and noticed my 5.3.4 install didn't have the realm dir.
[+] [-] mxBug|12 years ago|reply
They've complained that textbooks and courses often don't teach how to build anything directly useful, but video games? Suddenly, no holds barred.
[+] [-] binarycrusader|12 years ago|reply
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?
[+] [-] kaoD|12 years ago|reply
[+] [-] unknown|12 years ago|reply
[deleted]
[+] [-] rohall|12 years ago|reply
[+] [-] xiaomai|12 years ago|reply
[+] [-] Mikeb85|12 years ago|reply
[+] [-] muuh-gnu|12 years ago|reply
[+] [-] Nekorosu|12 years ago|reply
[+] [-] Nekorosu|12 years ago|reply
[+] [-] psutor|12 years ago|reply
I am very excited for this book as I do prefer the cleanliness of Scheme to CL.
[+] [-] TY|12 years ago|reply
[+] [-] Tortoise|12 years ago|reply
[+] [-] raphinou|12 years ago|reply
[+] [-] JoelMcCracken|12 years ago|reply
[+] [-] systems|12 years ago|reply
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
http://realmofracket.com/about.html
[+] [-] gecko|12 years ago|reply
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.
[+] [-] dragonwriter|12 years ago|reply
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.
[+] [-] mnbvcxza|12 years ago|reply
[+] [-] samth|12 years ago|reply
[1] http://en.wikipedia.org/wiki/The_Most_Interesting_Man_in_the...
[+] [-] mjt0229|12 years ago|reply
[+] [-] ripter|12 years ago|reply
[+] [-] tylero|12 years ago|reply
[+] [-] Bootvis|12 years ago|reply
[+] [-] nixpulvis|12 years ago|reply