特集:初めてのIronRuby

.NETでRuby開発を体験してみよう

デジタルアドバンテージ 一色 政彦
2009/03/11
Page1 Page2 Page3


IronPython開発入門

 ここ数年、Rubyプログラミング言語が世界中で人気である。特に最近の日本では、Ruby言語関連の書籍が次々と発売されるなど、ますます盛り上がっている。

 マイクロソフトもこの人気言語Rubyの対応に積極的だ。具体的には「IronRuby」(アイアンルビー)という.NET上でのRuby言語の実装を開発中で、マイクロソフトが自身の次世代技術を発表する開発者向けカンファレンス「PDC(Professional Developer Conference) 2008」(2008年10月にロサンゼルスで開催)では「IronRuby: The Right Language for the Right Job」(IronRuby:正しい言語で正しい仕事を)というセッションが開かれている。このことからも分かるように、Ruby言語は.NET開発でも活用される1言語という地位をいずれ確立しそうである。

 IronRubyは、Ruby 1.8系統の言語仕様をベースにしており、.NET環境における動的言語の実行エンジン「DLR(Dynamic Language Runtime)」上に実装されている。わざわざ.NET環境向けに実装し直す理由は、.NETならではのパフォーマンスの良さに加え、何よりも.NET Frameworkが持つ基本クラス・ライブラリとシームレスに統合できるという利点があるからだ。

 IronRubyは、現在(執筆時点で)、「バージョン0.2(アルファ版)」が公開されており、まだ1.0の正式リリースは行われていない(Ms-PLに基づいたオープンソースで、分散バージョン管理システム「Git」を使ってソース・コードを取得したり、開発に貢献したりできる)。

 本稿では、IronRubyの開発環境のインストールから、基本的な開発方法までを紹介する。なお、本稿はC#もしくはVB(Visual Basic)を習得していることを前提としており、.NETに関する基礎的な説明は省略している。Ruby言語に関する知識は必要ない。

【関連情報】QCon Tokyo 2009が4月9〜10日に開催

 Ruby、.NET、クラウド、アジャイル開発などに関するディープで最先端の開発技術情報を提供している、アルファ・ギーク向けのサイト「InfoQ Japan」が、2009年4月9日(木)〜10日(金)に東京コンファレンスセンター・品川で「QCon Tokyo 2009」というカンファレンスを開催予定だ(@ITもメディア・スポンサーになっている)。

 InfoQは、英語のサイトを筆頭に、日本語や中国語、ポルトガル語などのサイトがある。QConは、今年はすでに英国ロンドンで開催され、日本開催の直前に中国北京でも開催される人気の開発者イベントだ。ロンドンではすでに3回の開催実績があり、日本では今回が初めてとなる。

 IronRubyに関するセッションがあるかどうかは現時点で定かではないが、Ruby言語に関するセッションはいくつか開かれるだろう。Ruby言語を作った「まつもとゆきひろ氏」もスピーカーとして講演予定だ。そのほか、『リファクタリング』で有名なマーチン・ファウラー氏など、そうそうたるスピーカーが集結する。彼らの講演をじかに聴けるチャンスはなかなかないので、都合があえばぜひ参加することをお勧めする。なお、個人での参加登録は3万円、団体(5名以上)での参加は2万7千円となっており、InfoQ Japan登録者に限り2万7千円になるキャンペーンも行っている。

IronRuby開発環境のインストール

 まずはIronRuby開発環境を構築しよう。

 次のページから最新版のIronRubyをダウンロードしてほしい(「Download IronRuby <バージョン番号>」のリンクをクリック)。

 ダウンロードされたZIPファイル(筆者が試したときのファイル名は「ironruby1a2.zip」)を展開すると「ironruby」フォルダが作成されるので、これを任意の場所に配置する(本稿では「C:\Program Files\Microsoft SDKs\」に配置した)。

 以上でインストールは完了だ。

【コラム】通常のRubyのインストールについて

 IronRubyではなく、通常のRuby(「MRI(Matz' Ruby Implementation:まつもとゆきひろ氏によるRuby実装)」もしくは「CRuby」と呼ばれる)をインストールするには、次のページを訪れて[ダウンロード]というリンク先から最新のインストーラ・パッケージ(執筆時点では「ruby186-27_rc2.exe」)をダウンロードし、これを実行することでインストールが完了する。

 MRIのインストールについて詳しくは、「Coding Edge:WindowsにRuby1.8.6をインストールする」を参照されたい。

IronRuby開発の基本

 IronRubyには、以下の2つの実行モードが存在する。

(1)インタラクティブ・モード
(2)スクリプト・モード

 インタラクティブ・モードとは、コマンド・プロンプト上で、対話形式で(つまり1行ごとに)プログラムを実行していくモードで、いわゆる「対話型コンソール」である。

 スクリプト・モードとは、Rubyスクリプト・ファイル(=拡張子が「.rb」のファイル)を実行するモードで、この場合、バッチ処理もしくは通常の.EXEプログラムのようにRubyスクリプトを実行できる。

 それぞれの使い方について詳しく見ていこう。

インタラクティブ・モードによるIronRuby開発

 インタラクティブ・モードでIronRubyを利用するには、インストールしたIronRubyの「bin」フォルダ内にある「ir.exe」(本稿の例では「C:\Program Files\Microsoft SDKs\ironruby\bin\ir.exe」)を実行する(コマンド・プロンプトが起動する)。

 次の画面は、コマンド・プロンプト上からir.exeを実行したところ。

IronRubyの対話型コンソール(ir.exe)の実行

 上の画面を見ると「>>>」という表示があるが、これがIronRubyのプロンプトで、これに続けてコードを入力していく。そして、[Enter]キーで行を確定するごとにプログラムが実行される。例えば、次のように入力してみると、「Hello World!」と表示される。

puts("Hello World!")
「Hello World!」と表示するコード

 コードの意味について説明しておこう。

 Ruby言語では、改行されるまでの1行が「式」になる。

 putsは組み込み関数(=厳密にはKernelモジュールのメソッド)である。C#やVBと同じように、Ruby言語でのメソッド呼び出しも、メソッド名の後ろに ( ) (以降、カッコ)を付けるのが一般的だが、このputs関数に代表される一部のメソッドでは、むしろカッコを付けないで呼び出すのが慣例となっている。つまり、puts関数の場合、

puts "Hello World!"

のように書く方が一般的だ(もちろんカッコを付けないと、変数と見間違えやすくなり、紛らわしいという問題がある。しかし、puts関数の場合はあまりに基本的な組み込み関数であるがため、それが問題となる可能性は低く、むしろカッコを付けない方が見やすく、コードの文字数も少なくなるというメリットがある)。

 なお、文字列は一重引用符(')もしくは二重引用符(")で囲む*1

*1 本稿では詳細は割愛するが、一重引用符(')と二重引用符(")には違いがある。例えばファイル・パスを記述する場合に使う「\」(バックスラッシュ)記号は、一重引用符だと「\」と書けるが、二重引用符だと「\b」と書く必要がある。また文字列内の改行は、一重引用符だと実際に改行を含めるが、二重引用符では「\n」と書く。通常は二重引用符を使い、ファイル・パスを記述するときや、改行を含む文字列の場合など特定の場面においてのみ一重引用符を使うという書き方が多いようだ。

 次の画面は上記のコードの実行結果である。

「Hello World!」と表示するコードの実行結果

 「=>」に続く文字列は、関数の戻り値(=結果)を示している。「nil」は、C#における「null」、VBにおける「Nothing」である。

 対話型コンソール(ir.exe)を終了するには「exit」と入力すればよい。

【コラム】MRI(=通常のRuby)の対話型コンソールについて

 MRIに含まれる対話型Ruby(Interactive Ruby)コンソールは、「irb.exe」ファイルである。

スクリプト・モードによるIronRuby開発

 先ほどと同じコードを、今度はスクリプト・モードで実行してみよう。

 まず、任意の.rbファイル(本稿の例ではCドライブの直下に「hello.rb」ファイル)を作成し、その中に次のコードを記述する。

puts "Hello World!" #=> Hello World!
hello.rbファイル

 「#」は、C#の「//」、VBの「'」と同じで、それ以降がコメントとなり、プログラム・コードとして認識されない。その後の「=>」はメソッド実行の結果を意味するわけだが、前述の戻り値の表記に倣い、Rubyプログラムのコメントでは、処理結果を「=>」という表記で書き表すことが多い。

 完成した.rbファイルは、Rubyインタプリタの「ir.exe」ファイル(=先ほどのインタラクティブ・モードで使用したものと同じ)で実行できる。具体的には、次のようなコマンドを、コマンド・プロンプトに入力すればよい。

cd "C:\Program Files\Microsoft SDKs\ironruby\bin"
ir "C:\hello.rb"
Rubyインタプリタ(ir.exe)によるRubyスクリプト(.rbファイル)の実行
「cd」は、カレント・ディレクトリを変更(Change Directory)するためのコマンド・プロンプトのコマンド。ここではまず、ir.exeのあるディレクトリにカレント・ディレクトリを変更している。

 次の画面はこの実行結果である。

「Hello World!」と表示するスクリプトの実行結果

 対話型コンソールの場合と違い、戻り値などは表示されない。

【コラム】MRI(通常のRuby)の.rbスクリプト実行について

 MRIに含まれるRubyインタプリタ(Ruby interpreter)は、ruby.exeである。

 続いて、「Ruby標準ライブラリ」の使い方や.NET開発者なら気になる「.NETクラス・ライブラリ」の使い方などを紹介する。


 INDEX
  [特集]初めてのIronRuby
  .NETでRuby開発を体験してみよう
  1.IronRuby開発の基本
    2.IronRuby特有の機能
    3.Visual Studioを活用したリッチなIronRuby開発


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間