[racket] Racket Web Server

From: Neil Van Dyke (neil at neilvandyke.org)
Date: Mon Dec 12 01:02:03 EST 2011

Jordan Schatz wrote at 12/11/2011 10:15 PM:
> On Sun, Dec 11, 2011 at 04:25:46PM -0600, Gerry Weaver wrote:
>> I am new to Racket and Lisp/Scheme in general. I am trying to write a
>> simple rest web service in Racket, but I'm not making much
>> progress.

It's doable with the Racket Web Server.  Part of the difficulty people 
might be seeing is that the Racket Web Server is big on 
continuation-based Web serving, which is both very powerful and very 
difficult to understand initially.  If you're trying to "write Fortran 
in any language" by doing non-continuation-based serving, there's a lot 
of other stuff there to confuse you.

Also, don't get frustrated by the documentation: when I first did a Web 
app using the Racket Web Server, I had 10 years of Racket/Scheme 
experience, and I was still confused about which choices I should be 
making and how to do familiar things within those.  Once I found some 
things that worked, however, I blew through the app more quickly than I 
could've with any language and framework I've seen.

(At this point, the author(s) of the Racket Web Server might be thinking 
"We've put expert person-years into design, code, entire manuals, and 
tutorials... what more could anyone need?" :)

> So I have started to collect
> the info I find, problems I encounter etc into a "missing manual" and
> would love to collaborate on it if you are interested. I intend for it to
> be something of a quick start for someone who already knows how to
> develop, but is new to lisp, functional programing, and the racket web
> server.

I have been working, on-and-off, on such a book recently.  If only 
billionaire J.K. Rowling's publisher would answer my phone calls and 
letters about a hefty advance against royalties, my attention would not 
be so divided.

Incidentally, there is an awkward situation with Racket books targeting 
professional developers: every time nowadays I have to do something in 
Java (I was an early Java app developer), and Google for answers to 
technical questions about contemporary Java frameworks and libraries, I 
am horrified that the vast majority of people attempting answers in 
developer forums seem to have little idea what they're doing.  So, while 
I would like my book to poach from among the smartest 20% of Java 
developers, I think that the lower 80% need a very different book before 
they could do good work in Racket, and I wouldn't even try to write that 
book for the 80%.  Here's an early rough draft of paragraphs 2-4 of my 
irreverent book for the 20%, right before paragraph 5 puts any surviving 
readers into the pool.  I'll revisit the intro if the rest of the book 
ever gets done.

 > [TITLE] is targeted at people who already have software
 > development experience, and who are smarter than the
 > average bear.  Smarter, in the sense of learning from their
 > experience, and continually finding and adopting better
 > ways to do things.

 > Is [TITLE] not yet for you?  People who are new to
 > Computer Science, or who do not have much experience with
 > programming languages, are better served by first working
 > their way through the textbook,
 > @hyperlink["http://www.htdp.org/"]{@italic{How to Design
 > Programs} (HtDP)}.  HtDP will not teach you Racket, but it
 > will help build you up from ground zero to think about
 > problem-solving, laying a good foundation for then
 > learning Racket.

 > The mention above of [TITLE] being for people who are
 > smarter than the average bear is not only a clever ploy to
 > increase book sales by flattering the reader.  Some people
 > are more comfortable, in the work aspects of their lives,
 > relaxing into the leisurely pace of, say, a pigeon.  A
 > pigeon's life is simple, if slow and tedious.  There is
 > nothing wrong with that, and indeed pigeons perform a
 > useful function of cleaning urban parks of lunch scraps.
 > Pigeons also defecate all over everything, and their guano
 > can even infect others with disease.  Racket is not for
 > pigeons.


Posted on the users mailing list.