Що таке екосистема для веб-розробки Haskell? [зачинено]


80

Натхненний цим питанням та недавньою справою , мені цікаво, що пов’язано з веб-розробкою Haskell.

  • Чи існують веб-фреймворки Haskell або механізми шаблонів?
  • Як би працював хостинг сайту Haskell, чи є відповідні веб-сервери?
  • Чи занадто складний Haskell для звичайного швидкого розвитку та створення прототипів, що часто використовується у веб-розробці?
  • Чи є приклади існуючих веб-додатків Haskell?

11
Я не думаю, що це дублікат. Іншим питанням є питання про вивчення Haskell як першої мови для веб-розробки. Це питання конкретно задає питання про те, які фреймворки, механізми шаблонів та веб-сервери існують. Можливо, це питання можна переробити?
Том Локхорст

2
Саме тому я відмежував його від іншого питання, яке в основному отримувало відповіді та рекомендації щодо вивчення інших мов. Це питання має інший фокус, зокрема веб-орієнтовані проекти в екосистемі для Хаскелла. : - /
обдурити

7
Я хотів би це відкрити
CiscoIPPhone

@deceze Я трохи переробив ваше запитання. Зокрема, я зробив заголовок більш відмінним від іншого питання.
Том Локхорст

@Tom Дякую! Сподіваюся, це відрізняє його трохи краще.
обман

Відповіді:


18

Перш за все, застереження: я ніколи не займався веб-розробкою Haskell, тому я не висловлююся з досвіду.

Якщо ви подивитесь на веб-категорію в Hackage, існує безліч веб-пакетів.

Я думаю, що більшість веб-додатків Haskell працюють на власному сервері (можливо, використовуючи mod_proxyрозширену маршрутизацію запитів Apache або IIS як інтерфейс). Однак є також деякі прив'язки FastCGI.

Найвідомішим інфраструктурним веб-сервером / фреймворком / сховищем даних Haskell є Happstack , який цікавий з кількох причин, найбільш очевидним є те, що він зберігає весь свій стан в пам'яті і не використовує реляційну базу даних.

Ще одним останнім інтерфейсом веб-сервера є хак , про який я мало що знаю, за винятком того, що 1-хвилинний підручник виглядає цікаво.

У Haskell є набагато більше веб-серверів / фреймворків, але ці два - це лише ті, про які я знаю вгорі.


36

Я працював із справжніми веб-додатками в Haskell. Ось стек, який я використав:

  • Серверна база даних PostgreSQL
  • HDBC Postgres для підключення до нього
  • XHTML для створення HTML. Це трохи кумедний синтаксис, але принаймні у вас є лямбда-абстракція.
  • Fastcgi для підключення бекенда до lighttpd , виконуючи веб- сервіс .

Весь веб-додаток - це одна програма haskell, скомпільована до власного коду ghc. Я написав код для здійснення маршрутизації запитів (і зворотної маршрутизації) від руки.


14

Я використав Happstack для створення простого веб-додатка / веб-служби для нашої локальної інтрамережі.

  • Він зберігає дані в пам'яті з журналом транзакцій для відновлення (стандартно для Happstack). Ви ніде не знайдете SQL у коді.
  • Немає шаблонів. Те, що зазвичай роблять із шаблонами, я роблю в Javascript. Просто отримайте дані у форматі JSON і вставте їх у DOM.

Всього 169 рядків коду Хаскелла Main.hs, які визначають сервер. Решта - Javascript для презентації, а деякі Python для тестування.

Це відкритий код, ви можете перевірити його на GitHub і, можливо, використати як вихідну точку.


1
Рядок 82, ви забуваєте заключну цитату.
Rayne

10
Haskell дозволяє вводити лапки в ідентифікатори. Сумно, що підсвічування синтаксису github падає над цим.
люнтан

9
  • Чи існують веб-фреймворки Haskell або механізми шаблонів?

Існує багато веб-фреймворків. Подивіться у веб-категорії: http://hackage.haskell.org/packages/archive/pkg-list.html#cat:web

Щодо шаблонування, HStringTemplate, здається, є лідером бренду: http://hackage.haskell.org/package/HStringTemplate

  • Як би працював хостинг сайту Haskell, чи є відповідні веб-сервери?

Статично зв’язані двійкові файли, що працюють на власному веб-сервері (наприклад, happystack-сервер або один з інших веб-серверів Haskell), двійкові файли Haskell, що розмовляють з Apache, ... майже кожна комбінація, про яку ви могли подумати.

  • Чи занадто складний Haskell для звичайного швидкого розвитку та створення прототипів, що часто використовується у веб-розробці?

Ні. І ви отримаєте сильніші гарантії, що додаток не несправний завдяки системі типів.

  • Чи є приклади існуючих веб-додатків Haskell?

hpaste - це проста демонстрація для щастя. Весь бізнес Tupil.com - це веб-програми Haskell. Минулого року Deutsche Bank виступив з доповіддю на CUFP про їхні внутрішні веб-системи Haskell (на основі щасливого стеку).


Ну, Tupil також багато займається розробкою додатків для iPhone (у Цілі C). Вони не просто роблять веб-програми Haskell.
Том Локхорст,

7

По-перше, блін, якби це посилання на "роман" не було однією з найсмішніших речей коли-небудь!

Зараз, поки я розмістив відповідь за іншим посиланням, я не думаю, що багато чого відбувається у веб-країні Haskell. У вас є Happstack і, можливо, кілька інших фреймворків, які, здається, нікуди не діваються. Тоді у вас FastCgi.

Якщо вам подобається я, то FastCgi, мабуть, достатньо для більшості ваших потреб. Я вважаю, що більшість клієнтів насправді не мають проблем із масштабами (і, крім того, це досить добре для людей з Рубі, так).

Якщо FastCgi не ваша швидкість ... ну, можливо, позіхання або підйом (Erlang та Scala, відповідно) варто подивитися.


Містер Боун наполегливо вирішив цю справу.
Даніель
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.