this の質問と最近の affair に触発されて、HaskellのWeb開発には何が関係しているのだろうと思います。
まず、免責事項:私はHaskellのWeb開発を行ったことがないので、経験から話すことはありません。
Hackageで Webカテゴリ を見ると、Web関連のパッケージがたくさんあります。
ほとんどのHaskell Webアプリケーションはカスタムサーバーで実行されていると思います(おそらくApacheのmod_proxy
またはフロントエンドとしてのIISのAdvanced Request Routing)。ただし、いくつかのFastCGIバインディングもあります。
最も顕著なHaskell webserver/framework/datastorageインフラストラクチャは Happstack です。これはいくつかの理由で興味深いですが、最も明白なのは、すべての状態をメモリに保存し、リレーショナルデータベースを使用しないことです。
最近のもう1つのWebサーバーインターフェイスは hack ですが、1分間のチュートリアルが面白そうなこと以外はあまり知りません。
Haskellにはもっと多くのwebservers/frameworksがありますが、これら2つは私が頭の中で知っているものにすぎません。
Haskellで実際の製品Webアプリケーションを作成しました。これが私が使ったスタックです:
Webアプリケーション全体は、ネイティブコードghcにコンパイルされた単一のhaskellプログラムです。リクエストルーティング(およびリバースルーティング)を手動で行うコードを記述しました。
私はHappstackを使用して、ローカルイントラネット用のシンプルなwebapp/webserviceを作成しました。
Haskellコードは169行で、すべて Main.hs
、サーバーを定義します。残りはプレゼンテーション用のJavaScriptであり、一部はテスト用のPythonです。
これはオープンソースであり、 GitHub で確認できます。また、開始点として使用することもできます。
多くのWebフレームワークがあります。 Webカテゴリを見てください: http://hackage.haskell.org/packages/archive/pkg-list.html#cat:web
テンプレート化に関しては、HStringTemplateがブランドリーダーであるようです: http://hackage.haskell.org/package/HStringTemplate
独自のWebサーバー(happstack-serverまたは他のHaskell Webサーバーの1つなど)を実行する静的にリンクされたバイナリ、Apacheと通信するHaskellバイナリ...考えられるほとんどすべての組み合わせ。
いいえ。型システムのおかげで、アプリに欠陥がないことがより強力に保証されます。
hpasteはhappstackのシンプルなデモです。 Tupil.com全体のビジネスはHaskell Webアプリです。ドイツ銀行は昨年、CUFPで社内のHaskell Webフレームワーク(happstackベース)について講演しました。
まず、その「不倫」リンクがこれまでで最もおもしろいものの1つではなかったのなら、いまいましい!
さて、私は他のリンクに回答を投稿しましたが、HaskellのWebランドではあまり起こっていないと思います。あなたはHappstackとおそらくどこにも行かないように見えるいくつかの他のフレームワークを持っています。次に、FastCgiを入手します。
あなたが私のようであれば、FastCgiはおそらくほとんどのニーズに十分対応できます。私が見つけたほとんどのクライアントは、実際にスケールの問題を抱えていません(それに加えて、Rubyの人々、そうです)には十分です)。
FastCgiがあなたの速度でない場合は、まあ、おそらく、あごやリフト(それぞれ、ErlangとScala)は一見の価値があります。