Rubyの評価
2006年5月10日
これを読んでいるということは、Rubyプログラミング言語、特にWebアプリケーション開発のためのRailsフレームワークについて、大きな騒ぎになっていることをご存知だと思います。 プログラミングの未来と見る人もいれば、危険な寄り道と見る人もいます。
私は数年前にRubyを始めました。Pragmatic Programmers(プラグマティックプログラマーズ)に興味を持ち、すぐに私のお気に入りのスクリプト言語になりました。 時が経つにつれ、このウェブサイト、特にこのblikiの制作の多くを扱うようになりました。私はこの言語がとても気に入っています。
個人的な好みと、クライアントが使用するべきものかどうかには、大きな隔たりがあります。 クライアントプロジェクトへの適合性は、その機能に基づいて評価できます。そして、これは動的型付けの賛否、設定より規約、プロセスとスレッドなど、多くの議論につながります。このような議論は役に立ちますが、私は依然として警戒しています。このように判断するのが難しいことが多すぎます。そのため、クライアントプロジェクトでは、ゴルフコースでは良さそうだったテクノロジーによって、多くの時間を費やしてしまいます。私の好みは、経験に基づいてこの判断を下すことです。つまり、主流の環境で成果を出し、Rubyを試した実績のある人材を見つけることです。
これは、著名な著者からも見て取れます。 Rubyは、他の分野で豊富な経験を持ちながら、Rubyがさらなる優位性をもたらすと感じている多くの人々を引きつけています。Pragmatic Programmersの二人、Justin Gehtland、Bruce Tateなどの名前は、Rubyに注目する価値があることを示すのに十分でしょう。 しかし、私は偏っているかもしれませんが、ThoughtWorksのメンバー、つまり私がその経歴を知っていて、そのプロジェクトをより簡単に確認できる人々の意見に最も耳を傾けてきました。
まだ初期段階ですが、今では参考にできるプロジェクト経験がいくつかあります。これまでのところ、結果はRubyを強く支持するものです。「Java/C#ではなくRubyの方が生産性が大幅に向上したと思いますか」という質問に対して、毎回「はい」という強い回答が得られています。 これは、適切なプロジェクトであれば、Rubyを試してみるべきだと言うのに十分な理由です。もちろん、これは「適切」とは何かという小さな疑問を残すだけです。
一つ言及しておきたいのは、現在Railsの主要な領域として語られているものにうまく適合する典型的なWebプロジェクトがいくつかありますが、異なる要素もあるということです。
- 消費者がタッチスクリーンを直接操作するキオスク端末。 UIは非常にAjax的なWebフロントエンドであるため、Railsが存在します。しかし、ハードウェアデバイスとの通信、暗号化、奇妙なネットワーク関係など、すべてアプライアンスのようなLinuxボックス上で行われています。
- Rubyを使用して必要なものを指定し、結果のRuby式をSQLに変換して実際の作業を実行するバッチプロセスでのSQL操作がたくさんあります。フロントエンドにはRailsがありますが、これも典型的なRailsアプリケーションではありません。
- 多くの点で標準的なWebアプリケーションのように見えますが、さまざまな形式のデータを大量に処理し、非常に高度なグラフやチャート(Ploticusを使用)を作成するプロジェクト。
これらすべての場合において、関係者は他のプラットフォームよりも早く機能と価値を提供できていると述べています。これは、配信速度と生産性を求めているのであれば、Rubyを真剣に検討すべきであることを示唆しています。
まだ未解決の疑問がいくつかあります。特に、後の拡張段階、特にチームの変更があった場合にどうなるかは、まだ時期尚早です。 Rubyの動的な性質とツールの不足が問題になると考える人もいれば、Rubyが奨励するシンプルさがその違いを補うと考える人もいます。そのような疑問の性質上、まだ実際にはわかりません。詳細がわかり次第、更新します。
Cedric Beustは、Rubyが優れたプラットフォームであっても主流にならないかもしれないと効果的に主張しています。私はその主張を確かに理解しています。多くの元Smalltalkerと同様に、私は現在の主流のエンタープライズ向け選択肢よりも生産性の高いプラットフォームを長い間知っていました。 メインストリームのプラットフォームのみを使用することが重要である場合は、どうなるかを確認するために、より長く待つ必要があります。もちろん、主流に従うことを気にしない人はたくさんいます。
開発の生産性が政治的およびその他のコミュニケーション要因によって阻害されるプロジェクトもたくさんあります。ここでは、Rubyの利点は大幅に減衰します。
しかし、全体的に見て、信頼できる同僚からのこれらの経験は、スピード、応答性、そして生産性が重要な重要な仕事にRubyを使用することに、私はますます前向きになっています。