Rozważając Erlang web framework do nauki i wykorzystania w produkcji

Zacząłem uczyć się Erlanga kilka dni temu i jest to zdecydowanie bardzo ciekawy język i bardzo odpowiedni do tworzenia stron internetowych(przynajmniej back end). Mam zamiar eksperymentować i ostatecznie osiedlić się z jednym Erlang web framework do wykorzystania w moim następnym projekcie. Ponieważ Erlang jest " new ", trudno jest zdecydować, którego frameworka użyć (tj. brak dokumentacji i postów na blogu). Do tej pory moje googling zwrócił mi 3 Wyniki i zastanawiam się, każdy, kto ma doświadczenie w Erlang (szczególnie Erlang web development) proszę skomentować zalety i wady każdego frameworka i dodać brakujące frameworki.

Wymagania projektowe:

  1. aplikacja internetowa
  2. Baza Danych
  3. HTTPs
  4. przechowywanie plików (np. obrazów)
  5. manipulacja PDF
  6. dynamiczne porównanie logiczne (np. LHS == RHS itp.)

Erlang web framework:

  1. azot (preferowane tak far)
  2. Erlyweb
  3. BeepBeep
  4. Chicago Boss
  5. Erlang Web
  6. webmachine

Baza Danych Erlang:

  1. Mnesia (preferowane do tej pory)
  2. CouchDb
  3. MongoDB

Concrns:

  1. Azot

    • JavaScript generation

      Ponieważ azot generuje i osadza Kod JavaScript na stronie, który zwiększył rozmiar strony. Nie jestem pewien, czy jest w ogóle możliwe, aby w jakiś sposób "oddzielić" wygenerowany kod JavaScript od surowego html (w jakiś sposób może być buforowany przez przeglądarkę) w celu zmniejszenia danych przesyłanych w dół przewodu. Ale myślę, że ogólnie model zdarzeń i Zdarzenie auto wire są bardzo odpowiednie dla typu aplikacji, ale nie tak bardzo dla typu treści / public facing.

Author: Vadim Kotov, 2009-11-25

5 answers

Ten blog post porównuje kilka Erlang web framework.

 13
Author: Vijay Mathew,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-13 06:05:48

Osobiście wybrałem mongodb (ponieważ ma natywne sterowniki erlang i inne zalety) i webmachine do wysyłania adresów URL. Podoba mi się pomysł, aby mieć bardzo prosty wireframe HTML i głównie rurociągi JSON z webmachine i mongodb do przodu, aby być przetwarzane przez JQuery lub cokolwiek innego. Jednak Innym ciekawym frontonem byłoby cappuccino.

 6
Author: John Galt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-11-25 17:26:09

Pracuję z CouchDb. Oto krótki przewodnik , który napisałem. Jest w języku rosyjskim, ale próbki kodu są jasne. Wybrałem ten silnik bazy danych, ponieważ został napisany na Erlang i ma dobrą dokumentację, próbki i biblioteki w różnych językach programowania.

A ja używam BeepBeep, ponieważ jest to najlżejszy framework jaki znalazłem. Earlyweb jest zbyt duży dla moich zadań.

 3
Author: demas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-11-25 06:28:26

VoltDB (http://voltdb.com / ) jest opensource & komercyjna baza danych, kwasowa, skalowalna i bardzo wysoka przepustowość (50x od wiodących OLTP DBMS). VoltDB ostatnio rozwija Erlang client API, autorstwa Henninga Deidricha. Po prostu dołącz do forum i znajdź Henninga.

 0
Author: aris,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-17 14:36:18

Jak stwierdzono w poprzedniej odpowiedzi, VoltDB zapewnia niezwykle wysoką wydajność funkcjonalności OLTP (transakcje i kwas) w skali. Istnieje Biblioteka klienta Erlang dostępna pod adresem http://community.voltdb.com/getinvolved#svn

 -1
Author: tmcallaghan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-01 11:35:08