Я хотел бы заняться веб-программированием с использованием функционального программирования. Какие достойные веб-фреймворки существуют для функциональных языков программирования?
Я хотел бы заняться веб-программированием с использованием функционального программирования. Какие достойные веб-фреймворки существуют для функциональных языков программирования?
Ответы:
Лифт - это интересная основа для Scala. Практическое преимущество Scala заключается в том, что он может использовать любые существующие библиотеки Java.
Есть еще много много (даже я разрабатываю один на F #), но я думаю, что они (и Lift, уже упоминалось) являются наиболее полными / популярными / документированными. Я не могу комментировать рамки Erlang.
Есть список веб-фреймворков, доступных для Erlang. Обобщая этот список здесь:
Из этих двух, которые выглядят наиболее интересными для меня, это веб-машина и азот . YMMV.
Noir - это красиво, функционально и просто (в смысле Rich Hickey « Simple Made Easy »):
(defpage "/welcome" []
"Welcome to Noir!")
(server/start 8080)
Мне особенно нравится способ, с помощью которого вы можете построить все ваше веб-приложение, просто используя композицию функций, поддерживаемую несколькими макросами, чтобы включить хороший декларативный DSL.
Compojure - это веб-инфраструктура с открытым исходным кодом для языка программирования Clojure.
Поскольку вы исключили любые языки, я полагаю, вы принимаете несколько языков ...
Так что для языка F # существует FSharp.WebTools .
Веб-инструменты F # дополняют дистрибутив F # инструментами для создания однородных веб-приложений клиент / сервер / база данных в одном проекте с проверкой типа. Модальные различия между клиентом и сервером проверяются с помощью рабочих процессов F #, а LINQ может использоваться для доступа к базе данных. В первой версии части приложения динамически обслуживаются как JavaScript. Запланированные расширения включают обслуживание клиентских частей в качестве кода Silverlight.
Snap - хороший и действительно быстрый веб-фреймворк для Haskell.
простая среда веб-разработки для систем Unix, написанная на языке программирования Haskell. Snap имеет высокий уровень охвата тестированием и хорошо документирован. Особенности включают в себя:
- Быстрая библиотека HTTP-сервера
- Разумная и чистая монада для веб-программирования
- Система шаблонов на основе HTML для генерации страниц ...
Вот сравнение веб-фреймворков Erlang на Github:
https://github.com/evanmiller/ChicagoBoss/wiki/Comparison-of-Erlang-Web-Frameworks
Я не играл со всеми фреймворками, перечисленными там, поэтому не хочу судить, но я довольно широко использовал Zotonic в своем текущем проекте, и я могу искренне рекомендовать его. Насколько я знаю, это единственная платформа Erlang, которая является не только платформой, но и полноценной CMS. Таким образом, вы можете легко начать с использования только функций CMS, а затем расширить веб-сайт, добавив свои пользовательские функции с помощью собственных модулей. В моем случае я использую его исключительно как основу, потому что в данный момент функции CMS работают только с PostgreSQL, и я не могу использовать отдельную базу данных. Но даже в качестве фреймворка он предлагает множество функций, которые не всегда можно найти в других фреймворках.
Что очень приятно, так это то, что проект очень активно развивается, потому что люди, стоящие за Zotonic, проектируют и внедряют веб-сайты, и они используют его как свою CMS.
Если бы мне пришлось выбирать, я бы, вероятно, дал Zotonic первый шанс, затем ChicagoBoss, а затем Nitrogen.