この質問と最近の事件に触発されて、私はHaskellのWeb開発に何が関係しているのか疑問に思っています。
- Haskell Webフレームワークまたはテンプレートエンジンはありますか?
- Haskellサイトのホスティングはどのように機能しますか?適切なWebサーバーはありますか?
- Haskellは、Web開発でよく使用される通常の迅速な開発とプロトタイピングベースのワークフローには複雑すぎますか?
- 既存のHaskellWebアプリケーションの例はありますか?
回答:
まず第一に、免責事項:私はHaskell Web開発を行ったことがないので、経験から話すことはありません。
HackageのWebカテゴリを見ると、Web関連のパッケージがたくさんあります。
ほとんどのHaskellWebアプリケーションはカスタムサーバー上で実行されていると思います(おそらくApachemod_proxy
またはIISのAdvanced Request Routingをフロントエンドとして使用しています)。ただし、FastCGIバインディングもいくつかあります。
最も顕著なHaskellウェブサーバー/フレームワーク/データストレージインフラストラクチャはHappstackです。これはいくつかの理由で興味深いものです。最も明白なのは、すべての状態をメモリに保存し、リレーショナルデータベースを使用しないことです。
もう1つの最近のWebサーバーインターフェイスはハックです。これは、1分間のチュートリアルが面白そうに見えることを除いて私はあまり知りません。
Haskellにはもっとたくさんのウェブサーバー/フレームワークがありますが、これら2つは私が頭の中で知っているものにすぎません。
私はHaskellで実際の本番Webアプリケーションを作成しました。これが私が使用したスタックです:
Webアプリケーション全体は、ネイティブコードghcにコンパイルされた単一のhaskellプログラムです。リクエストルーティング(およびリバースルーティング)を手動で行うコードを作成しました。
Happstackを使用して、ローカルイントラネット用の単純なwebapp / webserviceを作成しました。
Main.hs
サーバーを定義するHaskellコードは169行しかありません。残りはプレゼンテーション用の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のビジネス全体はHaskellWebアプリです。ドイツ銀行は昨年CUFPで、社内のHaskell Webフレームワーク(happstackに基づく)について講演しました。
まず、その「情事」リンクがこれまでで最も面白いものの1つではなかった場合は気にしないでください!
さて、他のリンクに回答を投稿しましたが、HaskellのWebランドではあまり起こっていないと思います。Happstackと、おそらくどこにも行かないように見える他のいくつかのフレームワークがあります。次に、FastCgiがあります。
あなたが私のようなら、FastCgiはおそらくあなたのニーズのほとんどに十分です。ほとんどのクライアントは、実際にはスケールの問題を抱えていません(さらに、Rubyの人々にとっては十分です)。
FastCgiがあなたのスピードではない場合...まあ、おそらくヨーまたはリフト(それぞれErlangとScala)は一見の価値があります。