Rubyですべて実行される特定の本番用アプリ用にHaskellコンポーネントの構築を開始するかどうかの選択に直面しています。
私はいくつかの理由でHaskellに傾いています。主に速度(コンパイルされたHaskellは4〜8倍速い)、透明性の向上(Haskell型システムによる)、安全なリファクタリング(型システム)です。Haskellでいくつかのオープンソースおよびプロダクションプログラムをすでに書いており、それを非常に楽しんで書いています。
実現可能性は問題ではありません。Haskell Snap WebフレームワークとPostgreSQL.Simpleなどのデータベースライブラリをいじってみましたが、RailsアプリとさまざまなバックエンドプログラムをHaskellで書き換えることが可能であることに満足しています。
本当の問題は、開発チームの規模を拡大する必要がある場合にプログラマーを採用すること、または最終的にはプログラミングの責任を完全に引き継ぐことです。Rubyでは、Haskellよりもプログラマを見つける方がはるかに簡単です。その一方で、Haskellコミュニティは成長しているようで、DSLとしてアプローチする場合(Ruby on Railsのように)、Haskellプログラムの一部を変更するようにプログラマーをトレーニングすることはそれほど難しくありません。Haskell型システムは、動的Rubyよりもはるかに安全なコラボレーションを約束するようです。
ポールグラハムは、エッセイ「ビーティングザアベレージ」(http://www.paulgraham.com/avg.html)で、優れた言語を使用することが決定的な利点になり得ると主張しています。しかし、プログラマーをチームに追加しやすくするために、優れた言語を使用するのをやめるのはいつ適切でしょうか。