辞書: Ruby

投稿日: 更新日:

Rubyとは

プログラミング言語の1つです。 公式に「オブジェクト指向スクリプト言語」と名乗っています。

自分はPerl 5に馴染めなかったので、代わりに良い言語がないかなぁと探して見つけた言語がRubyでした。当時のバージョンは1.4だったと思います。

Rubyの好きなところ

自分がRubyの好きな理由は以下の通りです。

  1. 難しい概念を分かりやすく整理してくれること
  2. 記号を多用していること
  3. マクロがないこと

難しい概念を分かりやすく整理してくれること

Rubyを知ったときに最初に便利だなと思ったのが、ブロック付きメソッド呼び出しでした1。 今でこそJavaにもラムダ式が導入されていてメジャーな機能ですが、当時は自分には難しい概念でした。 これを分かりやすい構文で提供してくれたのがRubyです。

記号を多用していること

Rubyが採用している以下の書き方がとても気に入っています。

  • @ から始まる変数: インスタンス変数
  • @@ から始まる変数: クラス変数
  • $ から始まる変数: グローバル変数
  • アルファベット大文字で始まる: 定数
  • ? で終わるメソッド: 真偽値を返すメソッド(慣習)
  • ! で終わるメソッド: 破壊的な作用を持つメソッド(慣習)

ものすごく見やすくて、他の言語もこれ採用してくれないかなぁと思うのですが、全然見かけません。 Optionalに ? をつける言語があるくらいですね。

マクロがないこと

最後は、Rubyにマクロがないことです。 何でかというと、Gradleを使ったときに、 AST変換された文法にものすごく苦労して挫折した経験からです。 そして、AST変換はマクロと同じもののようです。

Rubyに関してはどうかと調べたら、2015年の記事に以下のようにありました。 情報処理2015年12月号特集記事「20年目のRubyの真実」インタビュー-情報処理学会 マクロそのものを導入するつもりはなさそうなのでホッとしました。

実際、RSpec(自分はInSpec)経由で使ってます)の文法は 独特すぎてちょっとどうかなぁと思うのですが、 普通に使うレベルなら文法エラーで困ることはありません。

なので、自分の中では「マクロ=越えては行けないもの」という認識です。 よっぽど画期的なアイデアがあれば別ですが。


  1. 自分がRubyを知った当時は「イテレータ」と呼ばれていたはず。 ↩︎

公式サイト