give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

(独断による)Rubyの良いところ、残念なところ

現時点でのRubyに対する感想をまとめてみます。
Rubyについてはほとんど開発経験もなく、最近ようやくじっくり調べてみた程度なのでエキスパートの人からすると「何言っとんねんコイツ!」とつっこまれるかもしれませんが、ご勘弁を。


ちなみにおいらは大規模システムの開発はJavaC#、簡単なユーティリティツールはJScript/VBScriptC#で作ってきた人間です。
また、実行環境はWebかWindowsが多いです。Linux/Unix向けのプログラムはほとんど作ってきていません。
評価の視点はおいらの経歴によって大きなバイアスがかかっていると思われます(^_^;


まずは良いところ。

言語設計が洗練されている

  • 動的言語の特性を活かして非常に簡潔な記述ができる。もちろんMatz先生の設計思想がすばらしいのも言うまでもありません。
  • イテレータやブロックといった特徴的な構文が用意されている。 (最近では他の言語も採用し始めてますが)
  • コードサイズを基準にして比較するとC#Javaよりもずっと生産性が高いはず

他の言語と比較してずば抜けて「イイ!」と思える点を挙げるとすると、現時点では一つだけになっちゃいました・・・。
有名なフレームワークRuby on Railsがありますが、「Railsがある」といってもWebフレームワークの一つにすぎないので、他の言語に比べてずば抜けてスゴイとまでは言い切れません。


次に残念なところを挙げてみます。

GUIと簡単に統合しにくい

実行環境のインストールが必要

  • Windows環境をターゲットとする場合、実行環境のインストールが必要。
  • .NETやJScript/VBScriptはWindows標準なので、ユーザーもすぐに使える。
  • JavaやFlashもインストールされている確率が高い。
  • (補足)IronRubyJRubyを使えばインストールは不要?? (配布サイズは大きくなるけど・・・)

コンパイラが助けてくれない

  • EclipseVisual Studioなら強力なコードの自動補完が可能。
  • プログラム間の不整合が実行するまで分からない。大規模なシステムだと自動化テストが用意されていないとソースコードの変更が不安。


「実行速度が遅い」というのは、あまりデメリットとは思えません。
最近のマシンパワーはすごいので、よっぽど変なコードを書かない限り、誰もが体感できるような速度差は出にくいと思うからです。


というわけで、残念ながら今のところ色んな場面でガンガンRubyを使おう!という感じにはならないです。。。
興味本位であえてRubyでプログラムを書いてみるとか、大規模開発に向けたクラス設計を下書きして動かしてみるとか、そういった用途になりそうな気がします。


決してRubyはダメだとか、キライだとか言うつもりはなくて、むしろ個人的には好き言語なのですが、仕事で使うには色々と不都合な点があるという感じです。
もちろん、これは現時点の感想なので将来的には変わっていく可能性が大いにあります。


なお、以下のWeb記事でも似たような話が載っているのでご参考までに。


私がScalaを選んだ理由
http://codezine.jp/article/detail/2464