Jaki jest ekosystem tworzenia stron internetowych Haskell? [Zamknięte]


80

Zainspirowany tym pytaniem i niedawnym romansem , zastanawiam się, co wiąże się z tworzeniem stron internetowych Haskell.

  • Czy są jakieś frameworki internetowe lub silniki szablonów Haskell?
  • Jak działa hosting witryny Haskell, czy istnieją odpowiednie serwery internetowe?
  • Czy Haskell jest zbyt skomplikowany dla zwykłego przepływu pracy opartego na szybkim programowaniu i prototypowaniu, często używanym w tworzeniu stron internetowych?
  • Czy istnieją przykłady istniejących aplikacji internetowych Haskell?

11
Nie sądzę, żeby to był duplikat. Drugie pytanie dotyczy nauki języka Haskell jako pierwszego języka do tworzenia stron internetowych. To pytanie dotyczy konkretnie istniejących frameworków, silników szablonów i serwerów internetowych. Może to pytanie można przerobić?
Tom Lokhorst

2
Właśnie dlatego oddzieliłem to od drugiego pytania, które polegało głównie na uzyskiwaniu odpowiedzi z zaleceniami dotyczącymi nauki innych języków. To pytanie dotyczy innego tematu, szczególnie projektów internetowych w ekosystemie Haskell. : - /
deceze

7
Chciałbym, żeby to się otworzyło
CiscoIPPhone

@deceze Trochę przerobiłem Twoje pytanie. W szczególności sprawiłem, że tytuł różni się bardziej od drugiego pytania.
Tom Lokhorst

@Tom Thanks! Mam nadzieję, że to odróżnia go nieco lepiej.
deceze

Odpowiedzi:


18

Przede wszystkim zastrzeżenie: nigdy nie tworzyłem stron internetowych Haskell, więc nie mówię z doświadczenia.

Jeśli spojrzysz na kategorię sieci Web w witrynie Hackage, znajdziesz wiele pakietów związanych z siecią.

Myślę, że większość aplikacji internetowych Haskell działa na niestandardowym serwerze (prawdopodobnie przy użyciu mod_proxyzaawansowanego routingu żądań Apache lub IIS jako interfejsu). Istnieją jednak również wiązania FastCGI.

Najbardziej znaną infrastrukturą serwera internetowego / szkieletu / magazynu danych Haskell jest Happstack , który jest interesujący z kilku powodów, z których najbardziej oczywistym jest to, że przechowuje cały stan w pamięci i nie korzysta z relacyjnej bazy danych.

Innym nowszym interfejsem serwera WWW jest hack , o którym niewiele wiem poza tym, że 1-minutowy samouczek wygląda interesująco.

W Haskell jest o wiele więcej serwerów internetowych / frameworków, ale te dwa to tylko te, które znam z góry mojej głowy.


36

Robiłem prawdziwe produkcyjne aplikacje internetowe w Haskell. Oto stos, którego użyłem:

Cała aplikacja internetowa jest pojedynczym programem haskell, skompilowanym do natywnego kodu ghc. Napisałem kod, aby ręcznie żądać routingu (i odwrotnego routingu).


14

Użyłem Happstack do stworzenia prostej aplikacji / usługi sieciowej dla naszego lokalnego intranetu.

  • Przechowuje dane w pamięci z dziennikiem transakcji do odzyskania (standard z Happstack). Nigdzie nie znajdziesz kodu SQL w kodzie.
  • Brak szablonów. To, co zwykle robi się z szablonami, robię w Javascript. Po prostu pobierz dane w formacie JSON i umieść je w DOM.

Jest tylko 169 linii kodu Haskella Main.hs, które definiują serwer. Reszta to Javascript do prezentacji i trochę Pythona do testowania.

Jest to oprogramowanie typu open source, możesz to sprawdzić na GitHubie i może użyć go jako punktu wyjścia.


1
Wiersz 82, zapominasz o cudzysłowie zamykającym.
Rayne

10
Haskell pozwala na cudzysłowy w identyfikatorach. Smutne, podświetlenie składni tego githuba przewraca się.
luntain

9
  • Czy są jakieś frameworki internetowe lub silniki szablonów Haskell?

Istnieje wiele frameworków internetowych. Zajrzyj do kategorii WWW: http://hackage.haskell.org/packages/archive/pkg-list.html#cat:web

Jeśli chodzi o szablony, HStringTemplate wydaje się być liderem marki: http://hackage.haskell.org/package/HStringTemplate

  • Jak działa hosting witryny Haskell, czy istnieją odpowiednie serwery internetowe?

Statycznie połączone pliki binarne z własnym serwerem WWW (np. Happstack-server lub jeden z innych serwerów WWW Haskell), pliki binarne Haskell komunikujące się z Apache, ... prawie każda kombinacja, o jakiej możesz pomyśleć.

  • Czy Haskell jest zbyt skomplikowany dla zwykłego przepływu pracy opartego na szybkim programowaniu i prototypowaniu, często używanym w tworzeniu stron internetowych?

Nie. Dzięki systemowi typów uzyskasz silniejsze gwarancje, że aplikacja nie jest wadliwa.

  • Czy istnieją przykłady istniejących aplikacji internetowych Haskell?

hpaste to proste demo happstack. Cały biznes Tupil.com to aplikacje internetowe Haskell. Deutsche Bank wygłosił referat w CUFP w zeszłym roku na temat ich wewnętrznych frameworków internetowych Haskell (opartych na happstack).


Cóż, Tupil zajmuje się również rozwojem aplikacji na iPhone'a (w celu C). Nie tylko robią aplikacje internetowe Haskell.
Tom Lokhorst

7

Po pierwsze, cholera, jeśli ten link do „romansu” nie był jedną z najzabawniejszych rzeczy na świecie!

Teraz, kiedy zamieściłem odpowiedź pod innym linkiem, nie sądzę, żeby wiele się działo w krainie Haskell. Masz Happstack i może kilka innych frameworków, które wydają się nigdzie nie iść. Następnie masz FastCgi.

Jeśli jesteś podobny do mnie, FastCgi jest prawdopodobnie wystarczająco dobre dla większości Twoich potrzeb. Uważam, że większość klientów tak naprawdę nie ma problemów ze skalą (a poza tym jest to wystarczająco dobre dla ludzi Ruby, prawda).

Jeśli FastCgi nie jest twoją prędkością ... cóż, może warto przyjrzeć się odchyleniom lub podnoszeniu (odpowiednio Erlang i Scala).


Pan Bone bardzo się tym zajął.
Daniel
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.