What is the difference between Seaside programmmin

2020-08-16 05:54发布

问题:

To me it seems the main point of Seaside is that it is more like normal "desktop" programming.

The control flow looks much more like "traditional" programming instead of "web" programming. Is that a correct impression?

I know it's about Web programming but it's does not looks like it from the programmers side. It looks much more than driving "desktop" applications. Does this clarify the question a bit?

回答1:

Your impression is correct. Seaside is designed for what I call a tree-like control flow, as desktop GUI apps have. Comparing to the Aida/Web, another Smalltalk web framework, which is meant for graph-like control flow, and that is actually what you have on the web.

But tree-like control flow is very useful in such cases like confirmation dialogs, or for popups like those very frequent on Facebook these days. That's why we are introducing the tree-like control flow in Aida/Web too, that is, we are combining both control flows together.



回答2:

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":

  1. using continuations to allow you to write multi-step processes that prompt the user for information
  2. 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.



回答3:

Seaside is an app framework for developing web apps written in smalltalk. What do you mean by it looks like "traditional" programming

Edit-

Seaside architecture is different from in which its web pages are built as trees of individual, stateful components, each encapsulating a small portion of a page