Haskell Web開発のエコシステムは何ですか?[閉まっている]


80

この質問と最近の事件に触発され、私はHaskellのWeb開発に何が関係しているのか疑問に思っています。

  • Haskell Webフレームワークまたはテンプレートエンジンはありますか?
  • Haskellサイトのホスティングはどのように機能しますか?適切なWebサーバーはありますか?
  • Haskellは、Web開発でよく使用される通常の迅速な開発とプロトタイピングベースのワークフローには複雑すぎますか?
  • 既存のHaskellWebアプリケーションの例はありますか?

11
これは重複ではないと思います。もう1つの質問は、Web開発を行うための第一言語としてHaskellを学ぶことについて尋ねることです。この質問は、具体的にどのフレームワーク、テンプレートエンジン、およびWebサーバーが存在するかを尋ねています。たぶん、この質問は作り直すことができますか?
Tom Lokhorst

2
だからこそ、私は他の質問からそれを分岐させました。それは主に他の言語を学ぶための推奨事項で答えを得ていました。この質問は別の焦点を持っています、特にHaskellのエコシステムにおけるウェブに焦点を当てたプロジェクト。: - /
deceze

7
これを開いて
ほしい

@decezeあなたの質問を少し作り直しました。具体的には、タイトルを他の質問とより明確にしました。
Tom Lokhorst

@トムありがとう!これが少し良く区別されることを願っています。
deceze

回答:


18

まず第一に、免責事項:私はHaskell Web開発を行ったことがないので、経験から話すことはありません。

HackageのWebカテゴリを見ると、Web関連のパッケージがたくさんあります。

ほとんどのHaskellWebアプリケーションはカスタムサーバー上で実行されていると思います(おそらくApachemod_proxyまたはIISのAdvanced Request Routingをフロントエンドとして使用しています)。ただし、FastCGIバインディングもいくつかあります。

最も顕著なHaskellウェブサーバー/フレームワーク/データストレージインフラストラクチャはHappstackです。これはいくつかの理由で興味深いものです。最も明白なのは、すべての状態をメモリに保存し、リレーショナルデータベースを使用しないことです。

もう1つの最近のWebサーバーインターフェイスはハックです。これは、1分間のチュートリアルが面白そうに見えることを除いて私はあまり知りません。

Haskellにはもっとたくさんのウェブサーバー/フレームワークがありますが、これら2つは私が頭の中で知っているものにすぎません。


36

私はHaskellで実際の本番Webアプリケーションを作成しました。これが私が使用したスタックです:

  • PostgreSQLデータベースバックエンド
  • それに接続するためのHDBCPostgres
  • Htmlを生成するためのXHTML。少し面白い構文ですが、少なくともラムダ抽象化があります。
  • Fastcgiを使用してバックエンドをlighttpdに接続し、Webサービスを実行します。

Webアプリケーション全体は、ネイティブコードghcにコンパイルされた単一のhaskellプログラムです。リクエストルーティング(およびリバースルーティング)を手動で行うコードを作成しました。


14

Happstackを使用して、ローカルイントラネット用の単純なwebapp / webserviceを作成しました。

  • リカバリ用のトランザクションログとともにデータをメモリに保存します(Happstackの標準)。コードのどこにもSQLはありません。
  • テンプレートはありません。テンプレートを使って通常行うことは、Javascriptで行います。データをJSON形式で取得し、それをDOMに配置するだけです。

Main.hsサーバーを定義するHaskellコードは169行しかありません。残りはプレゼンテーション用のJavascriptと、テスト用のPythonです。

これはオープンソースであり、GitHubで確認でき、出発点として使用できます。


1
82行目、終了引用符を忘れています。
Rayne

10
Haskellは識別子の引用符を許可します。悲しいことに、そのgithubの構文の強調表示はそれに当てはまります。
luntain 2009

9
  • Haskell Webフレームワークまたはテンプレートエンジンはありますか?

多くのWebフレームワークがあります。Webカテゴリを見てくださいhttp//hackage.haskell.org/packages/archive/pkg-list.html#cat:web

テンプレートについては、HStringTemplateがブランドリーダーのようです:http://hackage.haskell.org/package/HStringTemplate

  • Haskellサイトのホスティングはどのように機能しますか?適切なWebサーバーはありますか?

独自のWebサーバー(happstack-serverまたは他のHaskell Webサーバーの1つなど)を実行する静的にリンクされたバイナリ、Apacheと通信するHaskellバイナリ、...考えられるほぼすべての組み合わせ。

  • Haskellは、Web開発でよく使用される通常の迅速な開発とプロトタイピングベースのワークフローには複雑すぎますか?

いいえ。型システムのおかげで、アプリに障害がないことがより強力に保証されます。

  • 既存のHaskellWebアプリケーションの例はありますか?

hpasteはhappstackの簡単なデモです。Tupil.comのビジネス全体はHaskellWebアプリです。ドイツ銀行は昨年CUFPで、社内のHaskell Webフレームワーク(happstackに基づく)について講演しました。


そうですね、TupilはiPhoneアプリの開発もたくさん行っています(ObjectiveCで)。彼らはHaskellのWebアプリを実行するだけではありません。
Tom Lokhorst

7

まず、その「情事」リンクがこれまでで最も面白いものの1つではなかった場合は気にしないでください!

さて、他のリンクに回答を投稿しましたが、HaskellのWebランドではあまり起こっていないと思います。Happstackと、おそらくどこにも行かないように見える他のいくつかのフレームワークがあります。次に、FastCgiがあります。

あなたが私のようなら、FastCgiはおそらくあなたのニーズのほとんどに十分です。ほとんどのクライアントは、実際にはスケールの問題を抱えていません(さらに、Rubyの人々にとっては十分です)。

FastCgiがあなたのスピードではない場合...まあ、おそらくヨーまたはリフト(それぞれErlangとScala)は一見の価値があります。


ボーン氏はこれに一生懸命取り組んだ。
ダニエル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.