2010-07-07 12 views
33

Nad morzem just released kandydatem do wydania w nadchodzącej wersji 3.0, więc pojawił się ponownie na moim radarze. W chwili obecnej zastanawiam się, jakie ramy internetowe wykorzystać do przyszłego projektu, zastanawiam się, czy to coś do rozważenia. Niestety, większość rozgłosu w Seaside pochodzi z roku '07, który jest prawdopodobnie jednym lub dwoma pokoleniami dla sieci. Więc mam nadzieję, że społeczność tutaj można odpowiedzieć na kilka pytańCzy Nad morzem nadal jest ważna opcja?

  1. ramy Kontynuacja oparte były dość wielki, kiedy większość swojej pracy okazała głównie w HTML, na przykład formularz składa. W dzisiejszych ciężkich środowiskach JavaScript, nie wydaje się to już więcej warte zachodu.

  2. Czy pisk jest w stanie poradzić sobie z rozsądnym obciążeniem? Od innych pytań tutaj i gdzie indziej, wydaje się, że dla właściwego skalowania inna implementacja (Gemstone itp.) Prawdopodobnie policzyłaby lepiej na dłuższą metę, ale ja nie mam właściwego pojęcia, jak daleko to jest. Sesje wydają się dość drogie.

  3. Wiem, że porównania są trudne, ale większość artykułów, które można znaleźć w sieci, ustaw obok siebie obok siebie Morze i Rails. W jaki sposób zamiast tego działają kombinacje takie jak Scala/Lift, Clojure/Compojure lub Erlang/Azot?

Odpowiedz

19

mam odpowiedzi na pytanie jednego i dwa:

  1. To prawda. Jednak od wersji 2.8 Seaside nie jest już stricte "opartym na kontynuacji". Nadmorski korzysta tylko z kontynuacji w module przepływu. Od Seaside 3.0 moduł przepływu jest opcjonalny. Należy również pamiętać, że Seaside ma silną obsługę Javascript od 2005 roku, jest to na długo przed głównym nurtem zaczęły dodawać funkcje JavaScript. Dziś Seaside zawiera wbudowane wsparcie dla JQuery i JQueryUI.
  2. Oczywiście zależy to od tego, co przechowujesz w obiektach sesji, ale zazwyczaj sesje są małe (mniej niż 20 KiB). Użyj profilera pamięci w aplikacji, aby określić dokładne zużycie pamięci.
12

W Smalltalk mamy obecnie trzy ram internetowych do rozważenia, oprócz Seaside również

Obydwa później skutecznie rozwiązują trójpodziałowy przepływ sterowania, ale bez konieczności kontynuacji. Obie mają także bardzo silną integrację z Ajaxem, w rzeczywistości nie zdajesz sobie już sprawy, że pracujesz z Ajaxem.

Obie także skalują się dobrze w trybie zużycia pamięci. 10.000 sessions spend 220MB w Aida/Web, czyli około 23 KB na sesję, którą można dodatkowo zoptymalizować do zaledwie 400B na sesję. Oznacza to, że możesz uruchomić nie tylko wiele stron z jednego obrazu Smalltalk. Oczywiście zawsze możesz dokonać aktualizacji, aby załadować rozwiązanie równoważenia, kiedy naprawdę potrzebujesz. To z mojego doświadczenia bardzo rzadko potrzebne.

W porównaniu do Ruby on Rails, mój przyjaciel narzekał, że potrzebuje 50 MB pamięci początkowo na każdą stronę sklepu, którą sprzedaje. Następnie zwrócił się do rozwiązania Aida/Web, w którym potrzebuje około jednego MB dla obrazu, ale potem tylko o kilka KB za każdą dodatkową stronę sklepu.

+1

Wspaniale jest uzyskać dane porównawcze między różnymi schematami ... ale jak to odpowiada na pytanie? –

+0

W kwestii skalowania potrzebujemy lepszej definicji uzasadnionego obciążenia pracą, aby lepiej odpowiedzieć. Na pierwsze pytanie myślę, że odpowiedział pośrednio.Pozwolę sobie dodać jedno porównanie do trzeciego pytania. –

+0

Cóż, chodzi mi o to, że chciałem znać standardowe uzasadnione obciążenie pracą, tj. Punkt, w którym musiałaś przełączyć się z Squeaka na bardziej wydajny Smalltalk lub wprowadzić klasterowanie itp. – mhd

11

znajdę produktywność pracy w Smalltalk IDE z dobrym zestawem abstrakcji outweights wszystkie inne problemy w projektach inżynieryjnych zdominowany. Działa dobrze jako system dla małej firmy z około 100 (jednoczesnymi, ale nie ciężkimi) użytkownikami na jednym serwerze (bez przechodzenia na SSD). Od 2007:

  • Seaside okazało się być w stanie przejść z workflow html do javascript;
  • Morze zostało przeniesione na wiele różnych Smalltalks;
  • Widział Gemstone release GLASS;

Nowy "cog" vm o znacznie lepszej wydajności został wydany kilka tygodni temu i pokazuje wielką obietnicę poprawy wydajności.

4

Avi Bryant, twórca Seaside, powiedział, że AJAX triumfuje kontynuację niemal we wszystkich sytuacjach. Mimo to możesz budować rozsądnie potężne aplikacje w Seaside i AJAX.

Aplikacyjna część aplikacji internetowej może być wykonana w innych strukturach całkiem dobrze przy użyciu Ajax.

Myślę, że obecnie brakuje zintegrowanej platformy Smalltalk-to-JavaScript Framework, takiej jak Cappuccino-for-Clamato. Chciałbym móc tworzyć prawdziwe Javascript-Apps przy użyciu Smalltalk.

+4

Zamówienie http://amber-lang.net/ framework javascript-smalltalk – mozillanerd

4
  1. Javascript jest niesamowity, ale umiejętność radzenia sobie ze skomplikowanym przepływem pracy w czysty tani sposób po stronie serwera (tak jak pozwala na to Seaside) uniemożliwia jego przestarzałe działanie. Ekonomia i użyteczność to rzeczy, które zapewniają zwrot w krótkim i długim okresie. Ale mówienie tego w abstrakcji nie ma żadnej wartości. Powinieneś mówić o precyzyjnym zastosowaniu i decydowaniu, czy nad morzem jest częścią twojej przewagi konkurencyjnej, aby utworzyć równanie, które kołysze (i wiedząc dlaczego).
  2. O skalowaniu pracy z Seaside, krótka odpowiedź brzmi, że można ją skalować tak jak cholera yah (dla długiej odpowiedzi sprawdź moją odpowiedź tutaj: Does Seaside scale?).
  3. zbyt unanswerable człowiek :) rty odmianę czego naprawdę próbuje zapytać

Myślę, że najlepszą rzeczą, jaką możesz zrobić, to prototyp coś w weekend.

Jeśli uda Ci się zrobić prototyp w ciągu dwóch dni i możesz zwrócić na siebie uwagę, a ty czerpiesz przyjemność z rozwijania go w połączeniu z morzem, będziesz miał podstawę do następnej rzeczy.

Kosztuje tylko Twój czas (możesz opublikować na serwerze Amazon).

BTW, w tym tygodniu słyszałem o starcie, które ręcznie wykonało swój prototyp (wszystko było statyczne i ręcznie przetwarzane). Całkiem niesamowite i szalone i tanie. Kiedy poczuli, że mają wystarczającą przyczepność do pomysłu (który posiadali), zaimplementowali aplikację (przy pomocy jakiejkolwiek techniki, jestem pewien, że nie jest to wyzwanie dla nadmorskiego programisty).

Powiązane problemy