LINUX.ORG.RU

Стек веб-технологий для Эрланга


0

2

Just for fun изучаю Эрланг.

Подскажите, какой для него есть кошерный стек веб-технологий, на котором можно начинать экспериментировать прямо сейчас?

Там, база данных, ORM, логика, представление, веб-сервер...
Чтобы по-быстренькому освоить кирпичи,лопату,бюджет и начать писать на нем продакшен, а дальше само попрет :)

Если начнется холивор, прошу подкинуть сажи vs нодажс.

Спасибо)

★★★★☆

Аналогов DBI нету. Драйвера к базам данных: mysql, pgsql и вроде еще к нескольким, на github можно найти. ORM нету. Веб серверов несколько, смотря что нужно(yaws, misultin, ...)

Посмотри chicago boss - фреймворк типа rails, там есть что типа mvc, orm и т.д.

ates
()
Ответ на: комментарий от ates

>Посмотри chicago boss - фреймворк типа rails, там есть что типа mvc, orm и т.д.

А я очень не советую смотреть на chicago boss. Разработчики хотели как лучше - получили ТОРМОЗА.

beka
()
Ответ на: комментарий от beka

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

ates
()
Ответ на: комментарий от ates

Писать модели как рекорды - не самое благородное занятие. И все летит к чертям, когда надо описать нетривиальные модели. Кроме того, Chicago Boss даже на ХеллоВорде показывает удручающие результаты. Добавьте к этому еще и нехилое потребление памяти...

Если уж так нужен готовый фреймворк, то можно посмотреть на:

Webmachine
Erlang Web
Zotonic CMS

beka
()
Ответ на: комментарий от beka

А если сравнить по производительности с рельсами? Или Симфонией? Или Grails'ом? Всё так же сливает?

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от beka

>>ORM

забудь.


почему? O-R задачу решать все равно как-то надо :( Плюс, абстракция от базы данных, семантичесие рефакторинги и миграции.

Как все это решать без ORM? Или ты имеешь в виду, «еще не написали», и в этом месте предлагается навелосипедить самому? На это никакого времени не хватит.

логика

на чистом erlang-e


Ну, в вебе все равно надо использовать какой-то DSL/API над вебом. Например, чтобы объекты языка прозрачно транслировались в HTML. Или если stateful - то прятать состояние, создавая у пользователя иллюзию кодинга десктопного приложения. Логика вебморды должна быть дифференцирована от логики вычислений, и должна направляться идеалогией фреймворка. Опять же, писать свой эээ Wicket - на это никакого времени не хватит.

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от stevejobs

Stateful = (not REST)

ИМХО все эти попытки абстрагироваться от stateless - мертворожденные тормозные переусложненные УГ.

anonymous
()
Ответ на: комментарий от stevejobs

>А если сравнить по производительности с рельсами

Я не готов говорить про RoR, так как никогда не использовал его в продакшене. Могу сказать, что Django «тормозит» потому, что абстракция на абстракции и поверх абстракции, да еще и не на самой быстрой реализации языка. При всем этом, я могу довести проект на Django до состояния, когда производительность упирается в базу данных, а не в Python.

Что касается Chicago Boss, то там проблема с архитектурой и кодом Chicago Boss. Разница понятна? Он позиционируется как RoR/Django для Erlang. Но при этом:
а) Django не строит абстракции для проекта по чуждым для питона техногогиям. Он весь такой pythonic. Вместо того, что сделать Chicago Boss erlangish, в него впихнули десятки абстракции наподобие RoR, при этом в языке нет ООП.
б) Chicago Boss заставляет писать код не в стиле Erlang. А раз так, то зачем нужен Erlang?
в) Chicago Boss хорош для хомячков на бабрабабре, но плох для продакшена.

Как все это решать без ORM? Или ты имеешь в виду, «еще не написали»


А как можно написать ORM для языка где нет ООП? Где ВСЕ данные Immutables?
Moreover, Erlang is not Java, тут практикуются другие парадигмы программирования. Я очень не люблю рекламировать технологии и никогда этим не занимаюсь, но скажу - Если программировать на Erlang-e in Erlang style, то получишье несколько солидных плюшек, которые неитролизируют отрицательный эффект от отстутствия возможности реализации ORM для языка.

Я не делал фронтенды на Erlang-e, Erlang у меня всегда в back-end-ах. Посмотри на Erlang Web и Zotonic - это все что могу тут порекомендовать.

beka
()
Ответ на: комментарий от stevejobs

>а что ты скажешь про поддержку no-sql и удобство работы с ним?

У меня только 3 проекта на Erlang-e. Из них 2 раза добавлял Erlang в уже существующий проект. То есть база данных уже была - PostgreSQL. С ним никаких проблем не было.

Часто в задачах нужно заюзать key-value db, мне очень нравится Redis - у Erlang-a два драйвера для Redis-a, но в продакшен у меня Redis так и не попал, так как его полный аналог можно написать на самом Erlang-е минут за 20-30, да еще и быстрее будет чем Redis.

3-ий проект на Erlang+CouchDB. Но его пока не доделал. До продакшена еще далеко.

C MongoDB из Erlang-a никогда не работал.

beka
()
Ответ на: комментарий от beka

А как можно написать ORM для языка где нет ООП? Где ВСЕ данные Immutables?

Так и запишем. Адекватных средств для моделирования бизнес-логики нету.

dizza ★★★★★
()

Учитывая небольшое количество эрлангистов, тему отмечаю как решенную.

Решение:
1) вначале потестить Chicago Boss с CouchDB,
2) попробовать написать заготовку не-erlangish ORM (хотя это и невозможно :)
3) если первые две идеи сфейлятся, внять советам beka, и, возможно обратиться к эрланго-гуру в оффлайне

Спасибо! )

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от stevejobs

а почему именно CouchDB? Боюсь быть непонятым, надеюсь не из-за того, что я его упомянул ;)

У меня очень специфичная отрасль и CouchDB там хорошо впишется. (Нужна синхронизация между часто бывающими в офлайне БД). И нет требования к производительности. Поосторожнее с диванчиком...

И отпишись, пожалуйста, на ЛОР-е о результатах.

beka
()
Ответ на: комментарий от beka

потому что в предыдущем ответе надо было написать Couch вместо Mongo. Mongo было очепяткой)

stevejobs ★★★★☆
() автор топика
18 июля 2012 г.

Почти год прошёл. Как успехи с Erlang? Какой фреймворк выбрали, если таки выбор был сделан. БД?

Сам Just for fun начал изучать Erlang с месяц назад, смотрю в сторону Webmachines. Не пробовали его? Если таки да, что скажете по его поводу?

Test11
()
Ответ на: комментарий от Test11

Остановился на Нитрогене. Про webmachines (как и про нитроген) уже ничего не помню.

Помойму Эрланг - отличная читерская технология для извращенных применений, где без читов никак. Буду переписывать на нем отказо-толерантные скрипты, не приведи Господи встретиться с ситуацией, когда они действительно нужны.

А для повседневного быдлокодирования, где приставка быдло- нужна и важна, лучше что-нибудь поспокойней. Типа Java или Mono/.NET. Или вообще PHP.

Но это, ты учти, что мнение нерелевантное. Мне окончательно опротивело писать код. Я хочу просто достигать результата, как можно быстрее, проще и дешевле. Всё что этому мешает - отправляется в баню. Сам по себе Эрланг и куча того, что на нем писано - шедевры.

stevejobs ★★★★☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.