[racket] Racket Web Server
Hello All,
Neil points out something that I've been meaning to ask about. What exactly are the benefits of a continuation based design? Is the web server using it as some type of multitasking or coroutine feature? I think I have a basic understanding of what continuations are and how they work. I'm just not sure the benefits justify the liability (in terms of accessibility/maintainability). I could certainly understand the need to use them for a coroutine library though. I've seen literally dozens of statements extolling the power of continuations, but no one ever seems to provide a foundation for the statement. My current take on this is that they should be used very sparingly if at all. Would one of y'all please enlighten me?
Thanks,
Gerry
-----Original Message-----
> From: "Neil Van Dyke" <neil at neilvandyke.org>
> To: "Jordan Schatz" <jordan at noionlabs.com>
> Cc: users at racket-lang.org
> Date: 12/12/11 00:03
> Subject: Re: [racket] Racket Web Server
>
> 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.
>
>
> --
> http://www.neilvandyke.org/
> _________________________________________________
> For list-related administrative tasks:
> http://lists.racket-lang.org/listinfo/users