Ruby のインストールについて簡単に解説をします。Windows、Linux、MacOSそのほかさまざまなプラットフォームでRubyは実装されています。下記の URLを参考に自身のプロジェクトで最適な環境を選択してください。2005年10月8日現在、Rubyの最新版は1.8.3ですが、プラットフォームによっては1.8.2またはそれ以前のバージョンしかないものもあるかもしれません。
http://www.ruby-lang.org/ja/install.cgi
皆さんのクライアント開発環境はWindowsが多いことと思います。Rubyにはさまざまな開発環境や開発をアシストしてくれるツールが存在しています。下記のURLを参考にしてください。
http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=Tools+for+Ruby
筆者はvim(プラグインなし)でRubyを書いていますが、これからRubyを始める方にはEclipse上で動作するRubyのIDEであるRDTがなじみやすいのではないでしょうか。
http://capsctrl.que.jp/kdmsnr/wiki/rdt/
実際のRubyのソースコードを紹介します。サンプル1はメンバに対する単純なsetter、getterメソッドを持っただけのクラスです。RubyのソースコードがJavaのソースコードに比して、コーディング量が少ないことが分かります。
・サンプル1.1 (JavaのEmployeeクラス)
public class Employee { private String name; private boolean manager; public void setName(String name) { this.name = name; } public String getName() { return name; } public void setManager(boolean manager) { this.manager = manager; } public boolean isManager() { return manager; } } ・サンプル1.2 (RubyのEmployeeクラス) class Employee def initialize(name = '', manager = false) @name = name @manager = manager end attr_accessor :name, :manager alias :manager? :manager end
サンプル2では、クロージャと呼ばれている機能を使います。クロージャを使うことでロジックを簡潔に記述することができるようになります [*4] 。
Comments
・サンプル2.1 (JavaのselectManagersメソッド)
public List selectManagers(List employees) { List managers = new ArrayList(); for (int i = 0; i < employees.size(); i++) { Employees e = (Employee)employess.get(i); if (e.isManager()) { managers.add(e); } } return managers; }
・サンプル2.2 (Rubyのselect_managersメソッド)
def select_managers(employees) employees.select do |e| e.manager? end end
RubyはJavaに比してコーディング量が少なく簡潔なシンタックスを持っています。そのため、慣れてさえしまえば、より少なく、より早く書くことができ、その結果つまらないミスを犯す可能性が少なくなります。また、サンプル2.2のRubyのコードには型の宣言がないことにも気付きます。もしEmployeeのクラス名が変更されたとしたら、サンプル2.1の Javaコードは修正が必要になりますが、Rubyのサンプルでは、eのオブジェクトがEmployeeクラスのインスタンスだとはどこにも書いてないので修正の必要がありません。
連載第2回となる今回は、「Ruby超入門」ということで駆け足でRubyのことを紹介させていただきました。Rubyはスピードが勝負となる現在の開発現場にマッチした、非常に実戦的な言語です。Rubyは慣れるまでに若干時間がかかるかもしれません。それでもJavaに比して学習コストは比較的低いと筆者は考えています。そして何より、RoRでプロトタイプを作ることのメリットはそのコストに十分見合ったものです。
連載第3回目となる次回は、「RoR超入門」としてRoRについて解説をします。RoRの簡潔さ、ダイナミズム、スピード感を感じてもらえたら幸いです。
Copyright © ITmedia, Inc. All Rights Reserved.