33

Seaside刚刚发布了即将发布的 3.0 版本的候选版本,所以它再次出现在我的雷达上。由于我目前正在考虑为未来的项目使用什么 Web 框架,我想知道这是否值得考虑。唉,Seaside 的大部分宣传都是从 07 年开始的,这对于网络来说可能是一两代人。所以我希望这里的社区可以回答一些问题

  1. 当您的大部分工作流程主要是在 HTML 中时,基于延续的框架非常棒,例如表单提交。对于今天的 JavaScript 繁重的环境,这似乎不再值得了。

  2. Squeak 是否能够处理合理的工作量?从这里和其他地方的其他问题来看,从长远来看,为了正确扩展另一个实现(Gemstone 等)可能会更好,但我不知道那有多远。会话似乎相当昂贵。

  3. 我知道比较很难,但你在网上找到的大多数文章都将 Seaside 和 Rails 放在一起。Scala/Lift、Clojure/Compojure 或 Erlang/Nitrogen 之类的组合会如何代替?

4

6 回答 6

19

我有问题一和二的答案:

  1. 这是真实的。然而,自从 2.8 版以来,Seaside 不再是一个严格的“基于延续”的框架。Seaside 仅在流模块中使用延续。从 Seaside 3.0 开始,流量模块甚至是可选的。另请注意,Seaside 自 2005 年以来就拥有强大的 Javascript 支持,这早在主流框架开始添加 Javascript 功能之前。今天 Seaside 内置了 JQuery 和 JQueryUI 支持。
  2. 当然,这取决于您在会话对象中存储的内容,但通常会话很小(小于 20 KiB)。在您的应用程序中使用内存分析器来确定确切的内存消耗。
于 2010-07-08T05:58:13.410 回答
15

还有一本新的海边书:http ://book.seaside.st/book

于 2010-07-08T09:35:32.620 回答
11

在 Smalltalk 中,我们现在需要考虑三个 Web 框架,除了 Seaside

两者后来都有效地解决了三类控制流,但不需要延续。两者都具有非常强大的 Ajax 集成,实际上您不再意识到您正在使用 Ajax。

两者都可以很好地扩展内存消耗。10.000 个会话在 Aida/Web 中花费 220MB,即每个会话大约 23KB,可以进一步优化到每个会话仅 400B。这意味着,您不仅可以从单个 Smalltalk 映像运行许多网站,还可以运行许多网站。当然,当您真正需要时,您可以随时升级到负载平衡解决方案。根据我的经验,这是很少需要的。

与 Ruby on Rails 相比,我的一个朋友抱怨说,他最初销售的每个网站都需要 50MB 的内存。然后,他转向了 Aida/Web 解决方案,在该解决方案中,他需要大约相同的 MB 来存储图像,但随后每个附加的网店站点只需要几个 KB。

于 2010-07-08T05:55:28.503 回答
11

我发现在具有一组良好抽象的 Smalltalk IDE 中工作的生产力超过了工程主导项目中的所有其他问题。对于在单个服务器上(无需使用 SSD)有大约 100 个(同时,但不是大量)用户的小公司来说,它作为一个企业系统运行良好。自 2007 年以来:

  • Seaside 已经证明能够从 html 工作流程切换到 javascript 工作流程;
  • Seaside 已被移植到许多不同的 Smalltalks;
  • 已看到 Gemstone 发布 GLASS;

几周前发布了性能大大提高的新“cog”虚拟机,并显示出提高性能的巨大希望。

于 2010-07-08T15:08:01.717 回答
4

Seaside 的开发人员 Avi Bryant 表示,AJAX 几乎在所有情况下都能胜过延续。不过,您也可以使用 Seaside 和 AJAX 构建相当强大的应用程序。

使用 Ajax 可以在其他框架中很好地完成 Web 应用程序的应用程序部分。

我认为目前缺少像 Cappuccino-for-Clamato 这样的 Seaside 集成 Smalltalk-to-Javascript 框架。我希望能够使用 Smalltalk 构建真正的 Javascript 应用程序。

于 2010-07-09T14:43:53.763 回答
4
  1. Javascript 很棒,但能够在服务器端以一种干净便宜的方式处理复杂的工作流程(正如 Seaside 允许的那样),防止它变得过时。经济和效用是在短期和长期内产生回报的东西。但是抽象地讲这个根本没有任何价值。您应该谈论一个精确的应用程序,并确定海边是否是您的一系列竞争优势的一部分,以形成一个摇摆不定的方程式(并知道为什么)。
  2. 关于使用 Seaside 扩展工作负载,简短的回答是您可以像地狱一样扩展它(对于长答案,请在此处查看我的答案:Seaside 是否可以扩展?)。
  3. 太无法回答的人:) rty 是你真正想要问的一个变体

我认为你能做的最好的事情就是在一个周末做一个原型。

如果你能在两天内做一个原型,并且你可以吸引一些注意力,并且你喜欢在海边做它的开发经验,那么你将为你的下一个事情打下基础。

它只花费您的时间(您可以在亚马逊服务器上发布)。

顺便说一句,本周我听说一家初创公司手工制作原型(一切都是静态的,他们手动处理东西)。相当惊人,疯狂和便宜。当他们觉得他们对这个想法有足够的吸引力(他们有)时,他们实施了这个应用程序(无论使用什么技术,我相信对于海边的开发者来说都不是挑战)

于 2011-01-17T20:33:10.257 回答