Приморский по-прежнему действительный вариант?
Seaside только что выпустил кандидатуру для будущей версии 3.0, поэтому она снова появилась у меня на радаре. Поскольку в настоящее время я размышляю над тем, какой веб-фреймворк использовать для будущего проекта, мне интересно, стоит ли это учитывать. Увы, большая часть рекламы Seaside относится к 2007 году, что, вероятно, для одного или двух поколений в Интернете. Поэтому я надеюсь, что сообщество может ответить на несколько вопросов.
Основанные на продолжении фреймворки были довольно хороши, когда большая часть вашего рабочего процесса была в основном на HTML, например, отправка форм. Для современных сред с большим количеством JavaScript это вряд ли стоит.
Может ли Squeak справиться с разумной рабочей нагрузкой? Из других вопросов здесь и в других местах, кажется, что для правильного масштабирования другая реализация (Gemstone и т. Д.), Вероятно, будет лучше в долгосрочной перспективе, но я не имею правильного представления, насколько это далеко. Сессии кажутся довольно дорогими.
Я знаю, что сравнивать сложно, но большинство статей, которые вы найдете в сети, содержат Seaside и Rails рядом. Как бы вместо этого действовали такие комбинации, как Scala/Lift, Clojure/Compojure или Erlang/Nitrogen?
6 ответов
У меня есть ответы на первый и второй вопрос:
- Это правда. Однако, начиная с версии 2.8, Seaside больше не является строго основанной на продолжении средой. Seaside использует продолжения только в модуле потока. Начиная с Seaside 3.0 модуль потока даже не является обязательным. Также обратите внимание, что Seaside имеет сильную поддержку Javascript с 2005 года, это задолго до того, как основные платформы начали добавлять функциональность Javascript. Сегодня Seaside поставляется со встроенной поддержкой JQuery и JQueryUI.
- Конечно, это зависит от того, что вы храните в своих объектах сеанса, но обычно сеансы небольшие (менее 20 КиБ). Используйте профилировщик памяти в вашем приложении, чтобы определить точное потребление памяти.
В Smalltalk у нас теперь есть три веб-фреймворка для рассмотрения, кроме Seaside
Оба позже эффективно решают трехпроцессный поток управления, но без необходимости продолжения. Оба также имеют очень сильную интеграцию с Ajax, на самом деле вы больше не понимаете, что работаете с Ajax.
Оба также хорошо масштабируются в потреблении памяти. 10.000 сеансов тратят 220 МБ в Aida/Web, что составляет около 23 КБ на сессию, что может быть дополнительно оптимизировано до 400 ББ на сессию. Это означает, что вы можете запускать не только, но и множество веб-сайтов из единого образа Smalltalk. Конечно, вы всегда можете перейти на решение для балансировки нагрузки, когда вам это действительно нужно. Который из моего опыта очень редко нужен.
По сравнению с Ruby on Rails, мой друг пожаловался, что ему изначально нужно 50 МБ памяти для каждого сайта интернет-магазина, который он продает. Затем он обратился к решению Aida/Web, где ему требуется примерно столько же МБ для изображения, но затем всего несколько КБ для каждого дополнительного сайта интернет-магазина.
Я считаю, что производительность работы в среде Smalltalk IDE с хорошим набором абстракций перевешивает все другие проблемы в проектах, в которых доминируют инженерные разработки. Он хорошо работает в качестве корпоративной системы для небольшой компании с примерно 100 (одновременными, но не тяжелыми) пользователями на одном сервере (без перехода на SSD). С 2007 года:
- Seaside показал, что может переключаться с html-процессов на javascript;
- Побережье было портировано на множество различных Smalltalks;
- Видел выпуск Gemstone GLASS;
Новый cog vm с значительно улучшенной производительностью был выпущен несколько недель назад и демонстрирует большие перспективы для повышения производительности.
- Javascript - это круто, но способность справляться со сложным рабочим процессом чистым дешевым способом на стороне сервера (как позволяет Seaside) не позволяет ему устареть. Экономичность и полезность - это то, что дает отдачу в краткосрочной и долгосрочной перспективе. Но рассказывать об этом абстрактно не имеет никакого значения. Вы должны поговорить о точном применении и решить, является ли побережье частью вашего набора конкурентных преимуществ, чтобы сформировать уравнение, которое качается (и зная, почему).
- Что касается масштабирования рабочей нагрузки с помощью Seaside, краткий ответ заключается в том, что вы можете масштабировать его как до чертиков (для подробного ответа проверьте мой ответ здесь: Масштабируется ли Seaside?).
- Слишком неопровержимый человек:) Разновидность того, что вы действительно пытаетесь спросить
Я думаю, что лучшее, что вы можете сделать, это прототип чего-то за выходные.
Если вы можете создать прототип за два дня и привлечь к себе внимание, и вам понравился опыт работы с морским побережьем, то у вас будет основа для следующего.
Это стоит только вашего времени (вы можете опубликовать на сервере Amazon).
Кстати, на этой неделе я слышал о стартапе, который сделал свой прототип вручную (все было статично, и они обрабатывали вещи вручную). Довольно удивительно, безумно и дешево. Когда они почувствовали, что им хватило тяги к идее (которую они имели), они реализовали приложение (с любой технологией, я уверен, что это не проблема для приморского разработчика)
Ави Брайант, разработчик Seaside, сказал, что AJAX побеждает продолжения практически во всех ситуациях. Тем не менее, вы также можете создавать достаточно мощные приложения с Seaside и AJAX.
Прикладная часть веб-приложения может быть хорошо реализована в других средах с помощью Ajax.
Я думаю, что интегрированная в Seaside среда Smalltalk-to-Javascript, такая как Cappuccino-for-Clamato, в настоящее время отсутствует. Я хотел бы иметь возможность создавать настоящие приложения Javascript, используя Smalltalk.