Rubyへようこそ! 他の言語でのプログラミング経験をお持ちのあなたなら、Rubyの持つ柔軟性と「開発者の楽しさ」をすぐに感じ取れるはずです。この章では、Rubyの基本的な哲学に触れ、あなたのマシンに開発環境をセットアップし、最初のコードを実行します。
Rubyは、まつもとゆきひろ(Matz)氏によって開発された、シンプルさと生産性を重視した動的オブジェクト指向言語です。
すべてがオブジェクト (Everything is an Object)
JavaやPythonではintやfloatなどのプリミティブ型がオブジェクトとは別に存在しますが、Rubyではすべてがメソッドを持つオブジェクトです。5のような数値や"hello"のような文字列はもちろん、nil(nullに相当)やtrue/falseさえもオブジェクトです。
irb(main):001> 5.class => Integer irb(main):002> "hello".upcase => "HELLO" irb(main):003> nil.nil? => true
開発者を楽しませる (MINASWAN) Rubyの設計思想の核は、プログラマがストレスなく、楽しくコーディングできることを最適化する点にあります。これはしばしば「MINASWAN (Matz Is Nice And So We Are Nice)」というコミュニティの標語にも表れています。言語仕様が厳格さよりも「驚き最小の原則」や表現力を優先することがあります。
柔軟性と表現力 Rubyは非常に柔軟で、既存のクラスを後から変更する(オープンクラス)ことや、コードによってコードを操作するメタプログラミングが容易です。これにより、Ruby on Railsのような強力なフレームワークや、RSpecのようなDSL(ドメイン固有言語)が生まれています。
あなたの経験言語とRubyを少し比べてみましょう。
Pythonistaへ:
:とインデントではなく、do...endキーワード、または{...}(ブレース)で定義します。()は、曖昧さがなければ省略可能です。print "hello"のように書けます。Java/C# Developerへ:
int i = 10)は不要で、i = 10と書くだけです。public, private, protectedのアクセス修飾子はありますが、Javaなどとは少し動作が異なります(特にprivate)。JavaScript Developerへ:
thisの代わりにselfを使いますが、selfのコンテキストはJSのthisほど複雑に変化せず、より直感的です。true, false, nil 以外はすべて「Truthy(真)」として扱われます(0や空文字列""も真です)。システム(OS)に最初から入っているRubyを直接使うのではなく、バージョン管理ツール(rbenvやRVM)を導入することを強く推奨します。
プロジェクトごとに異なるRubyバージョン(例: 2.7.x と 3.3.x)を簡単に切り替えることができ、システムをクリーンに保てます。
ここではrbenvを使った一般的な流れを紹介します。(詳細なインストール手順はOSによって異なりますので、rbenvのGitHubリポジトリなどを参照してください。)
rbenv と ruby-build のインストール: Homebrew (macOS) や apt/yum (Linux) など、お使いのパッケージマネージャでインストールします。
Rubyのインストール:
# インストール可能なバージョン一覧を確認 $ rbenv install -l # 最新の安定版(例: 3.3.0)をインストール $ rbenv install 3.3.0
使用するバージョンの設定:
# このPCでのデフォルトバージョンとして設定 $ rbenv global 3.3.0 # バージョンが切り替わったか確認 $ ruby -v ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [arm64-darwin23]
Rubyのインストールが完了したら、irb (Interactive Ruby) を起動してみましょう。これはRubyのREPL (Read-Eval-Print Loop) で、コード片を試したり、ドキュメント代わりに使ったりするのに非常に便利です。
ターミナルでirbと入力することで起動できます。
このウェブサイトではドキュメント内にRubyの実行環境を埋め込んでいます。 以下のように青枠で囲われたコード例には自由にRubyコードを書いて試すことができます。
irb(main):001> 10 * (5 + 3)
=> 80
irb(main):002> "Ruby".length
=> 4
irb(main):003> 3.times { puts "Welcome!" }
Welcome!
Welcome!
Welcome!
=> 3
=> の右側に表示されているのが、式の**評価結果(返り値)**です。
3.timesの例に注目してください。puts "Welcome!"が3回実行(出力)されていますが、=> 3と表示されています。これは、3.timesというメソッド自体の返り値が3(レシーバである数値)であることを示しています。Rubyではすべての式が値を返すことを覚えておいてください。
最後に、定番の "Hello, World!" を2通りの方法で実行してみましょう。
puts("put string")は、引数を標準出力(ターミナル)に出力し、最後に改行を追加するメソッドです。
irb(main):001> puts "Hello, World!" Hello, World! => nil
(putsメソッド自体の返り値は、常にnilです。)
エディタでhello.rbという名前のファイルを作成します。
#!/usr/bin/env ruby # 1行目はShebang(シーバン)と言い、Unix系OSでスクリプトとして直接実行する際に使われます。 # 変数に文字列を代入 message = "Hello from script file!" # 変数の内容を出力 puts message
このファイルを実行するには、ターミナルでrubyコマンドの引数にファイル名を渡します。
このウェブサイト上では以下のように実行ボタンをクリックするとスクリプトの実行結果が表示されます。上の hello.rb のコードを変更して再度実行すると結果も変わるはずです。試してみてください。
ruby hello.rbHello from script file!
おめでとうございます! これでRubyの世界への第一歩を踏み出しました。 次の章では、Rubyの基本的な構文、データ型、そして他の言語にはない特徴的な「シンボル」について詳しく学んでいきます。