2009-10-17 3 views
12

Rubyは素晴らしい言語です。速くて柔軟性があり、多くのPythonを思い出させてくれます。Rubyの実際の問題は何ですか?

Rubyも非常に人気があり、数年前からありました。今ではいくつかの "現実の世界"のプロジェクトとそこに "レールアプリビジネス"があるので、私の質問はこれです:ルビーの問題は何ですか?特にうまくいかないことは何ですか?統合時に特に対処するのが困難であると判明している他の製品や技術はありますか?ミッションクリティカルなアプリケーション向けにRubyを採用する前に、開発者を一時停止させて慎重に扱うべきことは何ですか?

さらに、生産Ruby開発の主な落とし穴のリストとそれらのリスクを緩和する方法のリスト(ブログスパムなど)をコンパイルした人はいますか?

EDIT:何の予算とスケジュールが存在しない学問の世界とは対照的に、「現実世界」と

私は、ビジネスの世界を意味します。

+2

質問タイトルで「実世界」とは何を意味していますか?あなたはどのような区別をしていますか? Rubyに問題がある "ファンタジーワールド"はありますか? 「現実世界」とはどういう意味ですか?この用語を定義してください。 –

+1

Rubyは高速ですか?私の経験では、pythonやtclよりも著しく遅いようでした。 –

+1

Hmm。私は学問界で働いており、非常に実際的な予算とタイムラインを持っています。私は、学問の世界がどこにないかという考えをどこで得ているのか分かりません。 –

答えて

0

Rubyはインタープリタ言語なので、JavaやC#のようなジャストインタイムコンパイル言語(これまで見たテストに基づいています)より実行速度が最大50倍遅くなる可能性があります。これは問題であるかどうかは、ほとんどのサイトがCPU時間よりも帯域幅とデータベース時間によってはるかに制限される傾向があるため、サイト自体の動作に依存します。

+0

あなたがこれを投稿したときでさえ、それは不正確でした。あなたはMRI(Matz Ruby Interpreter)を記述しているようですが、他の人が準拠した実装を作成するための標準として使用されています。 JRubyとRubiniusはどちらもあなたの投稿の時点で存在していました。どちらもJITコンパイルを使用します。 – bigtunacan

2

Rubyは高速ではありません。それは他の性質を持っていますが、あなたのCPUが何らかのボトルネック(多くのWebアプリケーションではそうではありません)であれば、Rubyは適切なツールではありません。現在の "標準" RubyはPythonのようにバイトコードをコンパイルすることさえできませんが、代わりにASTを解釈するので、おそらく20-100の球場に減速を起こします。しかし、これはおそらくRuby 1.9を変更しようとしている(または少なくとも改善している)ようです。 JRubyはあなたが確かに知っているJVMベースです。

1

Rubyのパフォーマンスが特定のケースで望まれるものになる場合は、JRubyをご覧ください。これにより、バニラのRubyコードをJITまたはAOTの方法でJVMバイトコードにコンパイルし、Javaの並行性と偉大なアプリケーションサーバーへのアクセスを提供します。

+0

+1は並行処理を指します – DaveParillo

1

Rubyの速度は実際の主な問題ではありません。最大の問題は、それがシングルスレッドであることです。マックスA.の提案は良いです。 JRubyは並行処理を可能にします。

+0

または、プロセッサのコアを1つだけ使用します。 –

関連する問題