== A G+ friend learning Lisp decided to try Racket.  I gave him this advice, 
which I hope does not have errors:

I tend to write more Racket programs than in Common Lisp. I read the Steve 
Yegge blog entry above [1], and it is mostly true if a little overblown, but 
because of it I have to mention that if you are going to use SICP as a text 
with Racket, there are subtle differences between the Scheme in the text and 
the Scheme in Racket. These differences were address by Neil Van Dyke at 
http://www.neilvandyke.org/racket-sicp/ . Don't worry about it for now, just 
keep that in mind. Besides loving the technology of Racket, and the constant, 
forward, progressive, active improvement that makes DrScheme/Racket better year 
after year, I love the community. You can ask a question at 
users@racket-lang.org [you'll have to subscribe to post], and you'll get a 
friendly response, usually from the most knowledgeable professors, graduate 
students or practitioners. In this era of nastiness and dysfunction in politics 
and in some areas of the Internet, I find the Racket community a small garden 
of Eden!
  of sanity and constructivism. While SICP is an awesome, classic text, in the 
Racket community, they'll probably point you to http://www.htdp.org/ and 
http://www.ccs.neu.edu/home/matthias/HtDP2e/ which specifically build your 
skills using Racket as an environment. Having read SICP, when I first saw HtDP 
I thought "Isn't this rather simple?" but I was wrong. It starts with simple 
and then builds up a student's ability to handle complexity without losing 
control of the development process. It puts a lot of emphasis on something 
called The Design Recipe, which sounded hokey to me at first, but when I went 
to my first [of several] Racket summertime courses for instructors and I was 
shown what The Design Recipe was, I realized, even as someone who's been 
programming for 35 years, that rather than code a solution to something complex 
in say, an hour, after 15-20 minutes, when I thought I was a third done, I was 
actually and suddenly completely done, sometimes almost feeling like !
 magic. It basically puts a high emphasis on thinking and designing first, 
writing test cases very early, picking the right program structure, and then 
filling in the blanks and expanding them in a few places. Following the Design 
Recipe, not only was I often "suddenly done," but because my tests were written 
before I started coding the meat of a solution, I had (and continue to have) 
high confidence that my program works and will continue to work (or alert me 
quickly to new errors) should I make any "enhancements" down the road.

[1] http://steve-yegge.blogspot.com/2006/04/lisp-is-not-acceptable-lisp.html
____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to