Приморский по-прежнему действительный вариант? - PullRequest
34 голосов
/ 08 июля 2010

Побережье только что выпустило кандидата на выпуск для будущей версии 3.0, поэтому оно снова появилось на моем радаре. Поскольку в настоящее время я размышляю над тем, какой веб-фреймворк использовать для будущего проекта, мне интересно, стоит ли это учитывать. Увы, большая часть рекламы Seaside относится к 2007 году, что, вероятно, для одного или двух поколений в Интернете. Поэтому я надеюсь, что сообщество может ответить на некоторые вопросы

  1. Основанные на продолжении фреймворки были довольно хороши, когда большая часть вашего рабочего процесса была в основном в HTML, например Форма отправляет. Для современных сред с большим количеством JavaScript это вряд ли стоит больше.

  2. Может ли Squeak справиться с разумной рабочей нагрузкой? Из других вопросов здесь и в других местах, кажется, что для правильного масштабирования другая реализация (Gemstone и т. Д.), Вероятно, будет лучше в долгосрочной перспективе, но я не имею правильного представления, насколько это далеко. Сессии кажутся довольно дорогими.

  3. Я знаю, что сравнивать сложно, но большинство статей, которые вы найдете в сети, содержат Seaside и Rails рядом. Как бы вместо этого действовали такие комбинации, как Scala / Lift, Clojure / Compojure или Erlang / Nitrogen?

Ответы [ 6 ]

20 голосов
/ 08 июля 2010

У меня есть ответы на первый и второй вопрос:

  1. Это правда. Однако, начиная с версии 2.8, Seaside больше не является строго основанной на продолжении средой. Seaside использует продолжения только в модуле потока. Начиная с Seaside 3.0 модуль потока даже не является обязательным. Также обратите внимание, что Seaside имеет сильную поддержку Javascript с 2005 года, это задолго до того, как основные платформы начали добавлять функциональность Javascript. Сегодня Seaside поставляется со встроенной поддержкой JQuery и JQueryUI.
  2. Конечно, это зависит от того, что вы храните в своих объектах сеанса, но обычно сеансы небольшие (менее 20 КиБ). Используйте профилировщик памяти в вашем приложении, чтобы определить точное потребление памяти.
16 голосов
/ 08 июля 2010

И есть новая приморская книга: http://book.seaside.st/book

12 голосов
/ 08 июля 2010

В Smalltalk у нас теперь есть три веб-фреймворка для рассмотрения, кроме Seaside также

Оба позже эффективно решают трехпроцессный поток управления, но без необходимости продолжения. Оба также имеют очень сильную интеграцию с Ajax, на самом деле вы больше не понимаете, что работаете с Ajax.

Оба также хорошо масштабируются в потреблении памяти. 10.000 сеансов расходуют 220 МБ в Aida / Web, что составляет около 23 КБ на сеанс, что может быть дополнительно оптимизировано до 400 ББ на сеанс. Это означает, что вы можете запускать не только, но и множество веб-сайтов из единого образа Smalltalk. Конечно, вы всегда можете перейти на решение для балансировки нагрузки, когда вам это действительно нужно. Который из моего опыта очень редко нужен.

По сравнению с Ruby on Rails, мой друг пожаловался, что ему изначально нужно 50 МБ памяти для каждого сайта интернет-магазина, который он продает. Затем он обратился к решению Aida / Web, где ему требуется примерно столько же МБ для изображения, но затем всего несколько КБ для каждого дополнительного сайта интернет-магазина.

11 голосов
/ 08 июля 2010

Я считаю, что производительность работы в среде Smalltalk IDE с хорошим набором абстракций перевешивает все другие проблемы в проектах, в которых доминируют инженерные разработки.Она хорошо работает в качестве корпоративной системы для небольшой компании с примерно 100 (одновременными, но не тяжелыми) пользователями на одном сервере (без перехода на SSD).С 2007 года:

  • Seaside показал, что может переключаться с HTML-рабочих процессов на Javascript;
  • Seaside был портирован на множество различных Smalltalks;
  • видел выпуск Gemstone GLASS;

Новый 'cog' vm с гораздо улучшенной производительностью былвыпущен несколько недель назад и показывает большие перспективы для улучшения производительности.

4 голосов
/ 17 января 2011
  1. Javascript потрясающий, но способность справляться со сложным рабочим процессом чистым дешевым способом на стороне сервера (как позволяет Seaside) не позволяет ему устареть. Экономичность и полезность - это то, что дает отдачу в краткосрочной и долгосрочной перспективе. Но рассказывать об этом абстрактно не имеет никакого значения. Вы должны поговорить о точном применении и решить, является ли побережье частью вашего набора конкурентных преимуществ, чтобы сформировать уравнение, которое потрясающе (и знает, почему).
  2. Что касается масштабирования рабочей нагрузки с помощью Seaside, краткий ответ заключается в том, что вы можете масштабировать его, как черт возьми, да (для длинного ответа проверьте мой ответ здесь: Масштабируется ли Seaside? ).
  3. слишком неотразимый человек :) Разновидность того, что ты действительно пытаешься спросить

Я думаю, что лучшее, что вы можете сделать, это прототип чего-то за выходные.

Если вы можете сделать прототип за два дня, и вы можете привлечь к себе внимание, и вам понравился опыт разработки этого с морским побережьем, тогда у вас будет основание для вашей следующей вещи.

Это стоит только вашего времени (вы можете опубликовать на сервере Amazon).

Кстати, на этой неделе я слышал о стартапе, который сделал свой прототип вручную (все было статично, и они обрабатывали вещи вручную) Довольно удивительно, безумно и дешево. Когда они почувствовали, что им хватило тяги к идее (которую они имели), они внедрили приложение (с любыми технологиями, я уверен, что это не проблема для приморского разработчика)

4 голосов
/ 09 июля 2010

Ави Брайант, разработчик Seaside, сказал, что AJAX побеждает продолжения почти во всех ситуациях. Тем не менее, вы также можете создавать достаточно мощные приложения с Seaside и AJAX.

Прикладная часть веб-приложения может быть хорошо реализована в других средах с использованием Ajax.

Я думаю, что в настоящее время отсутствует интегрированная в Seaside среда Smalltalk-to-Javascript, например Cappuccino-for-Clamato. Я хотел бы иметь возможность создавать настоящие Javascript-приложения, используя Smalltalk.

...