現時点でのRubyに対する感想をまとめてみます。
Rubyについてはほとんど開発経験もなく、最近ようやくじっくり調べてみた程度なのでエキスパートの人からすると「何言っとんねんコイツ!」とつっこまれるかもしれませんが、ご勘弁を。
ちなみにおいらは大規模システムの開発はJavaかC#、簡単なユーティリティツールはJScript/VBScriptかC#で作ってきた人間です。
また、実行環境はWebかWindowsが多いです。Linux/Unix向けのプログラムはほとんど作ってきていません。
評価の視点はおいらの経歴によって大きなバイアスがかかっていると思われます(^_^;
まずは良いところ。
言語設計が洗練されている
- 動的言語の特性を活かして非常に簡潔な記述ができる。もちろんMatz先生の設計思想がすばらしいのも言うまでもありません。
- イテレータやブロックといった特徴的な構文が用意されている。 (最近では他の言語も採用し始めてますが)
- コードサイズを基準にして比較するとC#やJavaよりもずっと生産性が高いはず
他の言語と比較してずば抜けて「イイ!」と思える点を挙げるとすると、現時点では一つだけになっちゃいました・・・。
有名なフレームワークにRuby on Railsがありますが、「Railsがある」といってもWebフレームワークの一つにすぎないので、他の言語に比べてずば抜けてスゴイとまでは言い切れません。
次に残念なところを挙げてみます。
GUIと簡単に統合しにくい
- いろんな人に使ってもらえるクライアントサイドのユーティリティを開発しようとすると、やはりGUIにしておきたい。
- 1から10まで記述する手続き型ではなく、HTMLのように宣言型で作れるGUIがほしい。
- JavaScript/JScriptだったらHTML/HTAと簡単に統合できる。
- C#ならVisual Studio + Windows Form/WPF等で簡単にGUIが作れる。
- (補足)IronRubyを使ったらRubyでもGUIが作成可能?? http://www.atmarkit.co.jp/fdotnet/special/ironruby/ironruby_01.html
実行環境のインストールが必要
コンパイラが助けてくれない
- EclipseやVisual Studioなら強力なコードの自動補完が可能。
- プログラム間の不整合が実行するまで分からない。大規模なシステムだと自動化テストが用意されていないとソースコードの変更が不安。
「実行速度が遅い」というのは、あまりデメリットとは思えません。
最近のマシンパワーはすごいので、よっぽど変なコードを書かない限り、誰もが体感できるような速度差は出にくいと思うからです。
というわけで、残念ながら今のところ色んな場面でガンガンRubyを使おう!という感じにはならないです。。。
興味本位であえてRubyでプログラムを書いてみるとか、大規模開発に向けたクラス設計を下書きして動かしてみるとか、そういった用途になりそうな気がします。
決してRubyはダメだとか、キライだとか言うつもりはなくて、むしろ個人的には好き言語なのですが、仕事で使うには色々と不都合な点があるという感じです。
もちろん、これは現時点の感想なので将来的には変わっていく可能性が大いにあります。
なお、以下のWeb記事でも似たような話が載っているのでご参考までに。