Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Realm of Racket (nostarch.com)
152 points by Bootvis on June 18, 2013 | hide | past | favorite | 57 comments


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!


    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?


It's not incorrect, just misleading. If I made a Python descendant named Monty and said, "Monty retains the functional goodness of Python", wouldn't you give me flack since that's not the main point of Python?

What if I said C++ retained the imperative goodness of C?


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.


That's fine, I can accept that Racket favors FP. The point isn't that Racket tries to be functional, it's that Lisp as a whole doesn't.


Aren't you conflating "Lisp" with "Common Lisp" here?I suspect this, because I was told that for CL users the word "Lisp" means their particular Lisp incarnation. For the rest of the world - at least in those parts of the world where people speak Scheme or Clojure or newLisp or Shen or... - the word "Lisp" means "a family of languages, descendants of John McCarthy's 'original' one with this original included".

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".


To a degree, yes. But that's because CL is roughly speaking the set union of all Lisps available in the '80s. Scheme was off doing its own thing, and knew it.

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.


Not really, Interlisp for example looks very different from Common Lisp. Standard Lisp looks different. A bunch of other dialects, too. Incl. Scheme, Logo, LeLisp, ...

Common Lisp is basically a modernized version of Maclisp, integrating existing research/implementation on other Maclisp successors (NIL, Lisp Machine Lisp, ...).


If CL is a union of something at a time where Scheme existed, then it can't have been the "union of all Lisps".

I really, truly, wish the CL people would stop claiming that Lisp is restricted to a set that doesn't include LISP 1.5.


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.


Thanks for the code, it saved me the entire shipping cost!


hey! thanks. $19.17 for ebook only.


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).

Racketeers are eating their own dog food. The Racket Way video gives a good introduction: http://www.infoq.com/presentations/Racket


> No email, though (yet).

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/


Once again, JMZ is proves prophetic.


JWZ ;)


Some people see the valleys, others the mountains?


Nice.

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


yeah :)

I couldn't resist getting on with the ebook yesterday and noticed my 5.3.4 install didn't have the realm dir.


Aha !! Finally a Racket book that my pupils will pay attention to...

They've complained that textbooks and courses often don't teach how to build anything directly useful, but video games? Suddenly, no holds barred.


As someone that bought and thoroughly enjoyed the "Land of Lisp", is there a point to also buying this book?

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?


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/)


For anyone else looking to take a course like that, Coursera has a course on htdp right now: https://class.coursera.org/programdesign-001/class


Just like Land of Lisp (also written by Conrad Barski). Not a bad thing.


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.


Realm of Racket (ROAR) is not a translation of Land of Lisp, but it is heavily inspired by LOL. Our emphasis is on readers who have done some programming, possibly in Racket-based teaching languages but not necessarily so, and who wish to see the beginnings of Racket. You may wish to check out the sample chapter on Hungry Henry and compare ROAR to LOL before you buy. Or borrow the book from a friend to see how ROAR ends in a chapter on #lang.

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


Hi, is the book suited for people with no functional programming experience?


Yes, definitely.


What does the "A" in "ROAR" stand for?


The site states "PDF, Mobi, and ePub" but I can see only pdf download link. I'm a little disappointed.


I'm happy now. The links to ePub and Mobi will follow soon.


"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...


Amazon.ca has the book for CDN$ 26.43 (free shipping). http://www.amazon.ca/Realm-Racket-Learn-Program-Game/dp/1593...


Looks interesting indeed. However, i am not sure i will buy it due to the price of the ebook-only option, which is what i am interested in.


See the comment above for a coupon code!


the book website/author claims racket to be "the most unique programming language in the world"?

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


I actually get where the author's coming from.

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 sort of an LLVM for languages that failed to gain acceptance outside of academia?



Not only is this wrong about Racket as soegaard points out, but it's wrong about Datalog too.


> 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.


Typed Racket, I believe?


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].

[1] http://en.wikipedia.org/wiki/The_Most_Interesting_Man_in_the...


What does "most unique" even mean? Unique is by definition singular, is it not?


No. Behold, a set of unique numbers: {2, 3, 5, 7, 11, 359334085968622831041960188598043661065388726959079837}

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.


A set of numbers unified by the fact that they're all unique in exactly the same way. Unique. Singular. :-)


The EBook is a PDF if you buy the combo. I wouldn't have bought it if I resized that.


We'll be posting the EPUB and MOBI files shortly. You'll get those soon.


Ah, that makes it better. I didn't see anything when I got the files that said the other formats would be available soon.

Looking back at the site it only says it before you click buy. I didn't read the description before I started the checkout.


That's nice to hear 'cause I already started complaining. :) I'll update my comment.


The website states that epub and mobi will be available soon. I assume that it will be made available to early buyers.


Excited to buy this book and start seeing peers using it. Well done guys.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: