IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

RubyビギナーのためのStep upコラム

CTC 教育サービス

 [IT研修]注目キーワード   OpenStack  OpenFlow/SDN  情報セキュリティ  Python  システムトラブルシュート 

第1回 Rubyのバージョンアップのおはなし (中越智哉) 2017年12月

みなさん、こんにちは。

今回から、こちらでRubyに関するコラムを書かせていただくことになりました中越と申します。普段は、Rubyを使ったエンジニア・・・ではなく、実はIT関連の研修講師などをしております。なので、Rubyの研修もよく登壇させていただいているのですが、このコラムでは、そういった研修等を通じて初学者の方からよく出てくるRubyの疑問点や、知っておくとちょっと通ぶれる?豆知識、ときにはRubyにまつわる雑談など、私の普段の仕事からこぼれてくる話題などを扱わせていただければと思っております。どうぞよろしくお願いいたします。

さて、ということで早速、第1回の話題なのですが、本来ならばもっと早くこの原稿をお出しするつもりだったのですが、気付けば年末、師走に入ってしまいました・・・。年末のイベントといえば、皆さん何を思い浮かべられるでしょうか?

忘年会。
大晦日。
紅白歌合戦。
年末ジャンボ宝くじ。

・・・と、いろいろあるかと思いますが、やはり忘れてはいけないのが「クリスマス」ですよね。最近はIT業界の界隈ではテーマを決めたアドベントカレンダー(1日1つずつ記事をアップしていく)が流行っておりますが、アドベントカレンダーってもともとはクリスマスまでのカウントダウンをするための専用カレンダーみたいなものなんですよ(知ってました?恥ずかしながら私は自分の娘に買い与えるまでは存在すら知りませんでした笑)。

で、なぜクリスマスの話題なのか、と疑問を持たれた方もいらっしゃいますよね?ちょっとわざとらしかったでしょうか(笑)

実は、Rubyとクリスマスには深いつながりがあります。ということで、早速ですが、Ruby公式サイト(www.ruby-lang.org)のニュースリリースを見てみてください。毎年、クリスマスにどんな記事がアップされているでしょうか?

そうです。クリスマスにはほとんど毎年のように、Rubyの新しいバージョンがリリースされているのですね。毎年すべて見ていくのはちょっと大変かと思いますので、私のほうでこれを、表にまとめてみました。

バージョン リリース年月日
Ruby 1.6.8 2002年12月24日
Ruby 1.8.1 2003年12月25日
Ruby 1.8.2 2004年12月25日
Ruby 1.8.4 2005年12月25日
Ruby 1.9.0 2007年12月25日
Ruby 2.1.0 2013年12月25日
Ruby 2.2.0 2014年12月25日
Ruby 2.3.0 2015年12月25日
Ruby 2.4.0 2016年12月25日
Ruby 2.5.0 (おそらく)
2017年12月25日

※同サイトには現在2001年以前のニュースリリースがないため、パッチリリースを除く2002年以降の主要なリリースのみ記載しています。また、リリース年月日はニュースリリース記事の日付としています。

いかがでしょうか。表では割愛しましたがパッチリリースも含めると、毎年12月25日になにかしらの新バージョンがリリースされていることがわかります。さらに、Ruby2.1.0以降は、毎年規則正しく0.1ずつマイナーバージョン番号がアップしていることもわかりますね。AndroidやiOSもそうですが、決まった期間を区切ってバージョンアップするのは、最近の流行のようにも思えますね。

Rubyでは近年(2.1.0以降)、セマンティックバージョニングというバージョン番号の規則を採用しています(詳しくは、各種Webサイトなどで調べてみていただければと思います)。
従来、ソフトウェアのバージョン番号の付与は、割とそれぞれの作者の裁量という側面があったのですが、セマンティックバージョニングでは、そのあたりがきちんと定義され、明確になっています。例えば、互換性を保ったバージョンアップは基本的にマイナー番号(2つ目の番号ですね)の加算のみというルールがあったりします。Rubyのバージョンアップが一見、地味(失礼)に見えるのは、このためなんですね。

そうそう、私が昔、大学の卒業研究で使うソフトウェアを購入検討していた時、採用しようと思っていたソフトのライバル会社の営業さんから電話が来て、「うちのソフトの方がいいですよ、だって、うちのソフトの方がバージョン番号が高いです!」って言われて、思わず笑ってしまったことを思い出しました。そういう意味では、その当時よりはセマンティックバージョニングに基づいたバージョン番号のほうが、意味するところはややわかりやすくなったとは思いますが、もちろん、機能の豊富さや優劣、性能などを異なるソフトウェア間で比較することには、ほとんど何の役にも立ちませんが。

ということで、今回はRubyとクリスマスの浅からぬ縁についてご紹介しました。次回以降のコラムもどうぞお楽しみに。

 


 

 [IT研修]注目キーワード   OpenStack  OpenFlow/SDN  情報セキュリティ  Python  システムトラブルシュート