採用市場、パフォーマンス、保守性に基づいてアプリを構築するための言語を選択する[終了]


8

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)で、優れた言語を使用することが決定的な利点になり得ると主張しています。しかし、プログラマーをチームに追加しやすくするために、優れた言語を使用するのをやめるのはいつ適切でしょうか。


5
あなたは1つのことを忘れています:Haskellを知っている人はほとんどいませんが、Haskellを知っていて仕事で使用したいが、許可されていない場所があるので、Haskellerを見つけるのは難しいかもしれませんが、許可される場所を作るルビイスト、あなたが見つけたいくつかはあなたの上のノッチであり、あなたのために働くモチベーションがあります(私は.NETよりもHaskellで働きたいです...)
Jimmy Hoffa

4
ただ考えてみましょう。現時点では、ScalaはHaskellよりもはるかに速く普及しています。しかし、Scalaの基本的な概念を習得した人は、Haskellを手探りする時間がはるかに簡単になります。したがって、採用市場は見た目ほど悪くはないかもしれません。
9000

5
質問に対する私の最初の反応は、あなたのプロフィールをチェックして、あなたの会社が私の住んでいる場所の近くにあるかどうかを確認することでした。言ってるだけ。
psr 2013

回答:


11

Haskellのスピード、透明性、リファクタリングのメリットがアプリの成功にとってより重要である場合、開発者をトレーニングする必要があるリスクは、Haskellに固執する必要があります。

メンタリングを行う適度にインテリジェントなプログラマは、あまり苦労せずに開発に貢献できるはずです。

そのメンタリングを(時間とコストで)できる余裕があることを確認してください。


5

RubyではなくHaskellを使用すると何日節約できますか?Haskellプログラマーを見つけたり、Haskell以外のプログラマーを訓練したりするのに必要な日数よりも長いのか、それとも短いのでしょうか?ハスケル以外のプログラマにハスケルの使い方を教える準備はできていますか?最初の採用後ずっと長くHaskellを使用する能力を実証できないことを十分に理解しているプログラマーを採用してもかまいませんか?

これらは答えるのが難しい質問です。ここでの決定要因は、今後もHaskellを使い続けるつもりなのか、これが1つのプロジェクトだけに当てはまるのかどうかだと思います。今後もHaskellを使い続けるつもりなら、プログラムはもっと時間がかかりますが、投資と考えることもできます。しかし私の控えめな意見では、言語は建築ほど重要ではありません。適切なフレームワークと適切なプログラム構造を使用すると、同じプログラムを別の「優れた」言語で間違ったフレームワークまたは誤ったプログラム構造で簡単に上回ってしまう可能性があります。

つまり、プログラムを適切に実行するために時間を費やす場合、この時間は、コードの最初の行を書く前にアプローチを分析することに費やした方がよいと思います。


3
はい。しかし、「正しいフレームワーク」や「正しいプログラム構造」に関係なく、誰がCOBOLコードを書きたいのでしょうか。:Pポールグラハムのエッセイは、プログラミング言語自体が重要であると主張しています。
Andres F.

1
確かに楽しいとは言わなかった。しかし、プログラムを書くのが私が使いたい言語のすべてであるならば、私はJavaの使用をかなり以前にやめたでしょう。:)
Neil
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.