Какой самый простой способ написать веб-приложения на Haskell?
Я хотел бы больше использовать Haskell для своих проектов, и я думаю, что если я смогу начать использовать его для веб-приложений, это действительно поможет в этом деле. Я пробовал счастья один или два раза, но мне было трудно оторваться от земли. Существуют ли более простые / более обычные (больше похожие на лампы) каркасы, которые я могу использовать, или я должен просто еще раз попробовать?
8 ответов
Лучшие инструменты 2011 года:
Сообщество веб-разработчиков вокруг Haskell процветает на соревновании между этими сообществами.
Авторы даже сравнивают свои фреймворки здесь: Сравнение веб-фреймворков Haskell Snap и Yesod
Я разработал MFlow с идеей максимального соотношения функциональности и размера кода. MFlow сделан не для того, чтобы создавать какие-либо другие фреймворки, кроме как использовать Haskell до предела, чтобы решить проблемы веб-приложений, чтобы значительно снизить шум и коэффициент ошибок в веб-программировании. Вся навигация в приложении MFlow безопасна во время компиляции. Он использует стандартные веб-библиотеки: WAI, formlets, stm, blaze-html.
Судите сами: это полное приложение с тремя страницами. В цикле он запрашивает два числа и показывает сумму. Вы можете нажать кнопку "Назад", как вам угодно:
module Main where
import MFlow.Wai.Blaze.Html.All
main= do
addMessageFlows [("sum", transient . runFlow $ sumIt )]
wait $ run 8081 waiMessageFlow
sumIt= do
setHeader $ html . body
n1 <- ask $ p << "give me the first number" ++> getInt Nothing
n2 <- ask $ p << "give me the second number" ++> getInt Nothing
ask $ p << ("the result is " ++ show (n1 + n2)) ++> wlink () << p << "click here"
Состояние может быть сделано постоянным с небольшой модификацией.
http://hackage.haskell.org/package/MFlow
Здесь есть примеры: http://haskell-web.blogspot.com.es/
Если вы решите использовать HApps, вы, вероятно, захотите ознакомиться с этим прекрасным учебным пособием, которое разрабатывается как приложение HApps: HApps Tutorial
Вот список сообщений в блоге о Хаскеле, опубликованных в Интернете.
Кроме того, следующий большой веб-фреймворк на Haskell - WASH.
И есть специфичный для домена язык Apple, основанный на веб-объектах.
Интерфейс веб-приложений, WAI, является очень хорошим базовым уровнем, на котором вы можете создавать приложения. Есть много хороших библиотек на hackage для маршрутизации, шаблонов и т. Д., Которые хорошо работают в сочетании с WAI, что я и делаю.
Вы можете использовать CGI и библиотеку комбинаторов (x)html, как указано в статье по веб-разработке на Haskell. Более подробный обзор библиотек, фреймворков и т. Д. Для веб-программирования на haskell можно найти в разделе Практическое веб-программирование на Haskell.
Yesod был бы хорошим выбором, вы можете найти онлайн- книгу O'Reilly по Yesod Web Framework.
Есть также Hope (ссылка устарела), хотя она, похоже, не набрала такой же привлекательности, как HApps и WASH. Тем не менее, сайт также был тихим около года.