Для Хаскеля нет простых веб-фреймворков.
Вообще нет, совсем, никаких.
Это связано с тем, что все (ВСЕ!) веб-фреймворки используют WAI. WAI, Web Application Interface, представляет из себя
библиотеку в 18 (примерно) каталогов, каждый из которых содержит по несколько исходных файлов
(
Read more... )
Comments 194
Reply
Увы.
Reply
Веб на happstack, scotty или servant - проще.
У нас камрады и на голом WAI делали, тоже несложно.
Reply
Просто до того, как nealar указал на happstack, все фреймоврки были с использованием WAI. WAI is needlessly complicated and tailored to the programming style of their authors.
Вот хочу я лог. Зачем мне WAI лог? Все фреймворки на WAI как шаг в сторону, так WAI, wai-extra, wai-plus-plus, и тп. Рассчитываешь на простоту, а тут тебя хлоп по голове мешком с 18 библиотеками, которые ещё и haddock не имеют (настоящее положение дел со spock, что ли - он ссылается на WAI 3.2, а у неё документации на hackage нет).
Reply
А servant, о котором говорили на последнем митапе тоже показался сложный?
Reply
Один из авторов Серванта рассказывает, как сделать более простой вариант Серванта, поскольку обычные люди его не понимают.
Внимательное вглядывание в http://hackage.haskell.org/package/servant-server показывает наличие зависимости от WAI.
Так что нет, сервант не может быть простым.
Reply
Я не очень много пользовался servant и с очень простыми задачами, но мне ни разу не пришлось задумываться, что же используется там внутри, и в кишки wai лезть было не надо.
Reply
Reply
Reply
Вроде бы и указание, но с вопросительным знаком.
Так что это - указание, что мне делать, или вопрос?
Reply
И есть тебе не сложно, то сделай пост и напиши свои мысли (или даже наброски интерфейса) по этому поводу, пожалуйста.
Думаю, что это будет интересно не мне одному.
Reply
Фреймворк делится на две части - RPC с использованием HTTP и, собственно, цельное приложение. RPC это для внешних сервисов и его можно делать по остаточному принципу. Цельное приложение можно строить с помощью Raft, считая, что страничка пользователя это всё ещё наша программа, отдельная её нить или копия, которая участвует в Raft, но не может быть лидером.
Примерно так.
Веб приложение должно быть приложением, а не вычурным описанием фрактальной границы между кодом на сервере и кодом у пользователя.
Reply
Reply
Reply
Reply
На первый взгляд, вроде бы просто, но 1) нет формочек и 2) https://github.com/scotty-web/scotty-starter АААА!!!!!!
http://adit.io/posts/2013-04-15-making-a-website-with-haskell.html - WAI прямо указано в зависимостях. Если оно не нужно, его не надо указывать прямо. Поэтому получается, что WAI при работе со Scotty необходимо.
Используются: Network.HTTP.Types, Network.Wai.Middleware.RequestLogger, Network.Wai.Middleware.Static, "You can test your Scotty app with wai-test." Знание WAI требуется.
Я отринул его, увидев WAI в зависимостях. Поэтому близко не смотрел. И не буду.
Reply
Reply
Reply
Reply
Reply
Leave a comment