The point of Seaside is not really to be like desktop programming, though it does try to take much of the pain out of web development. Seaside is known for two things which you might consider "desktop-application-like":
- using continuations to allow you to write multi-step processes that prompt the user for information
- using blocks (closures) to provide event-handler-like "callbacks" into your code whenever links are clicked, forms submitted, etc.
These things vastly simplify certain web development tasks, though the first ends up being used fairly infrequently in practice.
Seaside provides many other things, though:
- The ability to write web applications in Smalltalk (very productive and pleasant)
- Composable, reusable "components"
- Components can delegate to other components, which replaces just that part of the page
- Easy management of session state and certain state can be marked to be rolled back whenever the user uses the Back button so it always has the correct value when callbacks are executed
- A very nice Canvas API for programatically generating HTML, JQuery, Scriptaculous
- The ability to debug and fix errors live on a running site
Most of these are not unique to Seaside but they are somewhat unusual. So how is it different from other web programming? You get to write in Smalltalk. You don't have to mentally context-shift back and forth between code and a templating language. You don't have to worry about form field names, URLs, etc. unless/until you want to. You probably won't hate web programming as much if you use Seaside.
People may discover Seaside because of its "desktop programming features" but they usually hang around for all the other stuff.