Seaside, Avi Bryant
(I missed Avi's tutorial - John and Don's conflicted - but got a 15 minute summary from Avi on the last day.) Seaside separates the concerns that make web application development difficult.
- Firstly, it separates time concerns: it lets you express the straight-through logic of your app (the route that a 'know what I want to do and how to do it on this site' user would take) without being distracted by handling all the 'go back, go sideways, make mistakes and reverse' behaviour that users actually do.
- Secondly it separates space concerns. It eliminates much of the need for frames by letting components work in pages without being distracted by what they are a component of.
Task and Component are the two classes you subclass from to make most of your seaside components. They have the basic protocol (go:, etc.) you use to exploit the continuations.
Avi mentioned enough commercial applications to use up most of my fingers counting them: I recall an airline booking app, a university on-line CV app, an on-line store, Lucas' work (see my report on ESUG last year), Colin Putney's work (see his talk above), and there were others. Avi mentioned that while he had no reason to be concerned about it, it should be noted that Seaside apps to date had not been huge volume ones (airline was a small airline, not EasyJet, etc.) A large number of simultaneous users in the middle of a large number of forward-back open continuations will cause a noticeable memory footprint (e.g. 100 users x 100k = 10Mb).
Cees de Grout offers high-end smalltalk hosting. Avi told me Colin Putney is considering offering low-end hosting; contact him if interested. (Bytemark offers virtual Linux hosting for 15/month but setting up base Squeak or whatever and restarting your app after crashes is your problem.)