functional web - что из ФП использовать для веб-программирования?

33 views
Skip to first unread message

Anton Tayanovskyy

unread,
Feb 28, 2009, 4:32:00 PM2/28/09
to ltu-...@googlegroups.com
Всем привет.

Сегодня была затронута тема HappS/Happstack. Отсюда вопрос:

Что и как из фунцкиональных языков Вы используете или пробовали для
веб-приложений.

Вот что приходит мне на ум:

* HappS / Happstack, библиотека Haskell с готовым веб-сервером и базой данных
* PLT Web Server, для которого сервлеты на Scheme, поддержка continuations
* Flapjax - компилирует functional-reactive язык в JavaScript
(http://lambda-the-ultimate.org/node/1771)
* Chicken Scheme Spiffy + WebScheme - работает по принципу PHP
* Java WARs написанные на функциональном JVM-языке, скажем Scala
* ASP.NET написанные на фунцкиональном .NET-языке, скажем F#
* Любой язык через FastCGI, CGI, SCGI, или встроенный сервер.
* Erlang / Erlyweb?

Использовал я HappS немного, и не остался особенно доволен. Авторы
HappS хотят выбросить СУБД, что в долгосрочном плане наверное
правильно, но здесь и сейчас я пока работаю с SQL-базой. HappS тянет
за собой довольно много зависимостей, что для простых вещей мне
кажется излишним. Слинкованные приложения тяжеловесны, собрать их без
Cabal непросто, объяснить другим людям как приложение работает тоже не
просто, любые модификации требуют повторной сборки. Как их база
работает я не понял, в частности устойчивы ли данные к апгрейдам
системы? Поэтому доверять данные Happs'у не решаюсь. Надеюсь что
Happstack исправит ситуацию, хотя бы с документацией. Если бы я сам
писал что-то похожее (без традиционной СУБД), смотрел бы в сторону
db4o.

PLT Web Server пробовал, хотя глубоко не разобрался c continuations.
PLT Scheme люблю и уважаю. Проблема для моих целей сегодня - плохая
поддержка MySQL и ODBC. Пробовал написать binding к ODBC. Получилось
но грубовато (медленно) и совсем non-portable. С PostgreSQL думаю это
хороший выбор.

Пробовал ASP.NET + F#. Почти уверен что подход ASP.NET в корне
неправильный, уж точно не фунцкиональный. Исправить наверное можно,
если подумать как. Плюсы подхода - автоматическая рекомпиляция кода,
плюс возможность подгружать отдельно скомпилированные библиотеки .NET
и Java (через IKVM), с автоматической их подгрузкой. Еще - веб сервисы
писать легко. Минусы - с документацией трудно, API писались явно под
IntelliSense (google: Does Visual Studio Rot the Mind?). Точно знаю
что ASP.NET + F# работает на Linux + Apache + MySQL.

Пробовал Haskell + FastCGI. Работает. Если подумать, можно навесить
сверху интересные вещи. Говорят несколько фреймворков это и делают, не
пробовал. Проблема заключается в том, что FactCGI - C-библиотека.
То-есть Haskell runtime scheduler (think forkIO) блокируется при
вызовах её функций. Вот. В большинстве случаев не важно, но иногда
достаёт. Хорошо было бы переписать на Haskell. Или добавить к
серверным модулям SCGI управление процессами, как в FastCGI. SCGI на
Haskell не составляет труда реализовать.

Последнее, на что смотрю - Chicken Scheme. Уступает PLT почти во всём,
но гораздо ближе к С, и лучше подходит для системного
программирования, сборки binaries. Что-то вроде С++ done right, с
очень интересным подходом к сборке мусора (google: Cheney on the
M.T.A). Их web-scheme практически drop-in replacement для PHP, с
авто-сборкой страниц, то, что я давно хотел получить. MySQL работает,
ODBC пока вроде нет.


--A

Ruslan Shevchenko

unread,
Feb 28, 2009, 5:07:02 PM2/28/09
to ltu-...@googlegroups.com
На тему JVM языков - их много
(http://www.is-research.de/info/vmlanguages/) [там даже один мой];
Кроме всего прочего есть и что-то хаскелеподобное. Если есть JVM, то
как правило проблем связи с инфраструктурой и сторонними бибилиотеками
нет.
Scal-овцы недавно закончили lift (типа дефаултный веб-фреймворк)

Anton Tayanovskyy

unread,
Feb 28, 2009, 5:37:24 PM2/28/09
to ltu-...@googlegroups.com
> На тему JVM языков - их много
> (http://www.is-research.de/info/vmlanguages/) [там даже один мой];

Termware? Только заметил что лицензия открытая. Сразу стало очень интересно. --A

Ruslan Shevchenko

unread,
Feb 28, 2009, 5:56:06 PM2/28/09
to ltu-...@googlegroups.com
2009/3/1 Anton Tayanovskyy <anton.ta...@gmail.com>:

>>  На тему JVM языков - их много
>> (http://www.is-research.de/info/vmlanguages/) [там даже один мой];
>
> Termware? Только заметил что лицензия открытая. Сразу стало очень интересно. --A
>

Ага

Paul Sujkov

unread,
Apr 27, 2009, 6:32:31 PM4/27/09
to LtU@Kiev
http://www.turbinado.org/Home

тыкаю его палочкой. выглядит хорошо, посмотрим как работает

On Mar 1, 12:32 am, Anton Tayanovskyy <anton.tayanovs...@gmail.com>
wrote:

Reply all
Reply to author
Forward
0 new messages