What is the difference between Seaside programmming and other web programming

亡梦爱人 提交于 2019-12-05 01:28:21

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.

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.

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!