Although most of my work is in AI development and general web services, I greatly enjoy writing user interfaces – this interest started in 1982 when SAIC bought me a Xerox 1108 Lisp Machine – the windowing system and general development tools were so good that they make most recent software development environments look weak.
Google Web Toolkit (GWT) and Squeak Smalltalk based Seaside are pleasant exceptions. Just like using Rails, GWT and Seaside provide that pleasant “everything just works” experience and great interactive development environments.
Seaside also supports the same fluid interactive development style: changes made in a Squeak Smalltalk source browser are immediately reflected in running web application. Seaside uses continuations to provide a more linear programming model. Blocks of code are used instead of URLs; inside a code block, you can call another code block – after a “return”, you continue where you left off in the first code block. There is a performance penalty for using continuations, but it looks straight forward to run multiple Squeak processes behind Apache so it look like Seaside scales the same way that Rails scales. DabbleDB is written using Seaside – a great proof of concept for scaling.