Inspiriert von dieser Frage und einer aktuellen Angelegenheit frage ich mich, was mit der Haskell-Webentwicklung zu tun hat.
- Gibt es Haskell-Webframeworks oder Template-Engines?
- Wie würde das Hosten einer Haskell-Site funktionieren? Gibt es geeignete Webserver?
- Ist Haskell zu komplex für den üblichen Workflow für schnelle Entwicklung und Prototyping, der häufig in der Webentwicklung verwendet wird?
- Gibt es Beispiele für vorhandene Haskell-Webanwendungen?
Antworten:
Zunächst ein Haftungsausschluss: Ich habe noch nie eine Haskell-Webentwicklung durchgeführt, daher spreche ich nicht aus Erfahrung.
Wenn man sich die aussehen Web Kategorie auf Hackage gibt es viele Web-bezogene Pakete.
Ich denke, die meisten Haskell-Webanwendungen werden auf einem benutzerdefinierten Server ausgeführt (möglicherweise unter Verwendung
mod_proxy
des erweiterten Anforderungsroutings von Apache oder IIS als Front-End). Es gibt jedoch auch einige FastCGI-Bindungen.Die bekannteste Infrastruktur für Haskell-Webserver / Framework / Datenspeicher ist Happstack , was aus mehreren Gründen interessant ist. Das offensichtlichste ist, dass es seinen gesamten Status im Speicher speichert und keine relationale Datenbank verwendet.
Eine andere neuere Webserver-Oberfläche ist Hack , von der ich nicht viel weiß, außer dass das 1-minütige Tutorial interessant aussieht.
Es gibt viel mehr Webserver / Frameworks in Haskell, aber diese beiden sind nur die, die ich von oben kenne.
quelle
Ich habe echte Produktionswebanwendungen in Haskell durchgeführt. Hier ist der Stapel, den ich verwendet habe:
Die gesamte Webanwendung ist ein einzelnes Haskell-Programm, das zu nativem Code ghc kompiliert wurde. Ich habe den Code geschrieben, um das Anforderungsrouting (und das umgekehrte Routing) von Hand durchzuführen.
quelle
Ich habe Happstack verwendet, um eine einfache Webanwendung / einen Webservice für unser lokales Intranet zu erstellen.
Es gibt nur 169 Zeilen Haskell-Code
Main.hs
, die den Server definieren. Der Rest ist Javascript für die Präsentation und etwas Python zum Testen.Es ist Open Source, Sie können es auf GitHub ausprobieren und es möglicherweise als Ausgangspunkt verwenden.
quelle
Es gibt viele Web-Frameworks. Schauen Sie in der Webkategorie nach: http://hackage.haskell.org/packages/archive/pkg-list.html#cat:web
Für Vorlagen scheint HStringTemplate der Markenführer zu sein: http://hackage.haskell.org/package/HStringTemplate
Statisch verknüpfte Binärdateien, auf denen ein eigener Webserver ausgeführt wird (z. B. Happstack-Server oder einer der anderen Haskell-Webserver), Haskell-Binärdateien, die mit Apache sprechen, ... so ziemlich jede erdenkliche Kombination.
Nein. Und Sie erhalten stärkere Garantien, dass die App dank des Typsystems nicht fehlerhaft ist.
hpaste ist eine einfache Demo für Happy Stack. Das gesamte Geschäft von Tupil.com besteht aus Haskell-Web-Apps. Die Deutsche Bank hielt letztes Jahr auf der CUFP einen Vortrag über ihre internen Haskell-Webframeworks (basierend auf Happstack).
quelle
Erstens, verdammt, wenn dieser "Affären" -Link nicht eines der lustigsten Dinge überhaupt war!
Nun, während ich eine Antwort auf den anderen Link gepostet habe, glaube ich nicht, dass im Haskell-Webland viel passiert. Sie haben Happstack und vielleicht ein paar andere Frameworks, die scheinbar nirgendwo hingehen. Dann haben Sie FastCgi.
Wenn Sie mich mögen, dann ist FastCgi wahrscheinlich gut genug für die meisten Ihrer Bedürfnisse. Ich finde, die meisten Kunden haben keine wirklichen Skalierungsprobleme (und außerdem ist es gut genug für die Ruby-Leute, richtig).
Wenn FastCgi nicht Ihre Geschwindigkeit ist ... nun, vielleicht sind Gieren oder Heben (Erlang bzw. Scala) einen Blick wert.
quelle