The first frameworks I'll look at will be written in Smalltalk. I set up an old PC (450MHz Celeron, 256MB RAM) with Debian Lenny and installed Squeak and also got an old (1996, pre Squeak) Smalltalk book from the library to learn enough of the language.
A short look at the two available frameworks:
Seaside
This framework differs from others by managing state using continuations, which makes it very interesting. It seems to attract developers as shown by projects such as the CMS pier and the related meta-description framework magritte (If I understand it correctly, it servers to create re-usable models of re-occuring tasks like data validation.). Recent versions advertise a big reduction of memory usage, which seems to have been a problem in the past.
20090410: To gain a better understanding of continuations in Seaside, have a look at Julian Fitzell's blog post. It's very interesting, thanks to him for pointing to it.
AIDA/Web
AIDA/Web was first presented in 1996 and still actively in development. It seems to be very mature and powers for instance the Squeak home page. It is based on MVC, supports Ajax and even includes a web server. It advertises integrated session and security support and REST-like urls, but I have yet to find out how they do it. It claims simplicity yet to allow for complex applications, just like the language Smalltalk.
Subscribe to:
Post Comments (Atom)

Technically speaking, Seaside doesn't really use continuations (in the sense you probably mean) to manage state. It uses first class continuations to allow you to write methods that prompt the user for information and are resumed with the response when the user clicks on a link or submits a form.
ReplyDeleteIt does also use a metaphorical continuation-passing style to divide an application up into pages and this allows desired state to be rolled-back appropriately when the user uses the back button (or opens several tabs) and triggers callbacks defined on these pages.
I wrote a blog post on the use of Continuations in Seaside (mostly in the in-development 2.9 version) which might be interesting: http://blog.fitzell.ca/2009/01/seaside-partial-continuations.html