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" <n...@neilvandyke.org> > To: "Jordan Schatz" <jor...@noionlabs.com> > Cc: users@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 _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users