I've never build any serious webapp with Lisp, and none using
continuations but I have built quite a few in other languages, and I am
interested in using Lisp in future webapp projects.
I can see the appeal of continuation style in webapps in /certain/ types
of web apps, though I doubt it's useful for the more "static" parts of a
site.
I can also believe having many continuations/closures hanging off
sessions is pretty memory intensive, especially if you want to have a
history for people to go back to.
I may ofcourse be completely misguided.
If anyone here has pointers to comparisons between continuation and
REST / "sessions as plain data" style web development in Lisp (especially
regarding differences in development time, debugging and system
resources) or has any other comments I'd be grateful.
Thanks in advance,
Joost.
cheers
Slobodan
I almost forgeth If you have an huge appetite look at
http://groups.google.com/group/comp.lang.lisp/browse_thread/thread/ccc371be797e4bf/6d123d47e314eccf?q=web+continuation+marco+baringer&lnk=ol&
pay attention especially to Marco Baringer posts.
cheers
Slobodan
http://tourdelisp.blogspot.com/
[ lots of stuff ]
Slobodan, thanks!
All that will probably take some time to read, but from what I've seen so
far it looks pretty useful.
Cheers,
Joost.
Where do I order my Kenny Tilton poster?
-Harold
the management
P.S:
Yobbos & whiners : STAY AWAY!
my personal opinion is that continuations are good in two cases: if you have
very reach stateful UI (i.e. multipage wizard in some accounting app), or if
you'd like to hack prototype rapidly (continuations allow you to do function
calls instead of URLs/dispatching). in other cases they are as useful as a
fifth wheel.
> my personal opinion is that continuations are good in two cases: if you have
> very reach stateful UI (i.e. multipage wizard in some accounting app), or if
> you'd like to hack prototype rapidly (continuations allow you to do function
> calls instead of URLs/dispatching). in other cases they are as useful as a
> fifth wheel.
There are other cases where it is useful. Traversing multiple structures
in parallel and resuming at arbitrary points, trial and error type
searching of calculation possibilities such as parsing. What continuations
give you is a context for little effort. Without that, you have to convert
the context into a data structure. There is an example in "Paradigms of
AI" by Peter Norvig.
I had a situation last week where continuations would have been quite
useful. A number of "processes" (actually all in one lisp image) formed a
"pipe" where the "processes" have to stop and start based on various events
and feedback moving up and down the pipe. I coded the restarting manually
but it would have been a lot easier if I had call/cc.
This reminds me of the "impedance mismatch" between classes and relational
databases. There is nothing you can't do with relational databases but it
can be very tedious.
Tim Josling
tJ> There are other cases where it is useful.
i meant in context of web programming, of course continuations are useful in
other areas :)
tJ> Traversing multiple structures in parallel and resuming at arbitrary
tJ> points, trial and error type searching of calculation possibilities
tJ> such as parsing. What continuations give you is a context for little
tJ> effort. Without that, you have to convert the context into a data
tJ> structure. There is an example in "Paradigms of AI" by Peter Norvig.
i was amazed how elegant it is to add non-determinizm in form of amb
operator, via continuations in scheme:
http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme-Z-H-16.html