Ответ 1
Лучшие инструменты по состоянию на 2011 год:
Сообщество веб-разработчиков по всему Haskell процветает на соревнованиях между этими сообществами.
Авторы даже сравнивают свои рамки здесь: Сравнение веб-фреймворков Haskell Snap и Yesod
Я хотел бы использовать Haskell больше для своих проектов, и я думаю, что если я начну использовать его для веб-приложений, это действительно поможет. Я пробовал один или два раза, но у меня не было проблем с выходом на землю. Существуют ли более простые/более обычные (более похожие на лампы) рамки, которые я могу использовать, или мне просто нужно дать еще одну попытку?
Лучшие инструменты по состоянию на 2011 год:
Сообщество веб-разработчиков по всему Haskell процветает на соревнованиях между этими сообществами.
Авторы даже сравнивают свои рамки здесь: Сравнение веб-фреймворков Haskell Snap и Yesod
Если вы решите пойти с HApps, вы, вероятно, захотите проверить этот превосходный пример управляемого руководства, который разрабатывается как приложение HApps: Учебное пособие по HApps
Я разработал 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/
Вот список связанных с блогами сообщений в блоге о Haskell из вики.
Кроме того, следующая крупная веб-фреймворк Haskell WASH.
И есть веб-сайт, основанный на веб-сайтах на основе веб-сайтов Apple.
Интерфейс веб-приложений, WAI - очень хороший базовый уровень, на котором вы можете создавать приложения поверх. Есть много хороших библиотек для взлома для маршрутизации, шаблонов и т.д., Которые хорошо работают в сочетании с WAI, что я и делаю.
Вы можете использовать CGI и библиотеку комбинаторов (x) html, как указано в статье wiki Haskell Web Development. Более широкий обзор библиотек, фреймворков и т.д. Для веб-программирования в haskell можно найти в Практическое веб-программирование в Haskell.
Yesod будет хорошим выбором, вы можете найти O'Reilly Yesod Web Framework Book в Интернете.
Существует также Hope (ссылка обесценивается), хотя, похоже, она не получила столько же тяги, сколько HApps и WASH. Тем не менее, сайт также был тихим около года.