私家版Ruby史

先日、あるRuby会議での雑談中に、こんなものが必要かなぁ、と感じたのでまとめてみています。随時コメント歓迎( @ksmakoto 等まで)。


前史

1988年(ないし1989年 (別冊であるので、その『bit』本誌が1月号か?)): 『bit』別冊「Common Lisp オブジェクトシステム ――CLOSとその周辺――」(単行本として再版されている http://www.kyoritsu-pub.co.jp/bookdetail/9784320122543 )この本の第1章§3.3(p. 18)に「筆者はこうしたことのためのメソッドを特異メソッドと呼んでいる」とある(井田昌之先生による)のが、Rubyの特異メソッドの由来( #:g1: 特異メソッドという訳語の謎 も参照)。

誕生〜20世紀

1993年2月24日: 「まつもとさんが作ろうと思った」( [ruby-list:6553] )。Rubyと命名(誕生)。なお [ruby-talk:382] では同23日となっているがそれは誤記で [ruby-list:15977] にて訂正されている。『ある時友人と話していて「純粋なオブジェクト指向のスクリプト言語ってないよね」という話から,じゃあ自分で作ろうと思い立った』( [ruby-list:63]

1993年5月28日(JST): (ruby固有の)現行のソースコードにもある最古の日時、node.hの「created at: Fri May 28 15:14:02 JST 1993」

(memo): ハッシュライブラリ(Peter Moore氏作、st.c st.h )のコードは olwm 由来( https://twitter.com/yukihiro_matz/status/13575831953

1993年8月5日: 「インタプリタが動いた」([ruby-list:6553]

1994年6〜7月頃: ftp://ftp.ruby-lang.org/pub/ruby/1.0/ に置かれている最古のスナップショット ruby-0.49.tar.gz ( [ruby-talk:206778] も参照)

1994年8月19日: ftp://ftp.ruby-lang.org/pub/ruby/1.0/ に置かれているChangeLog-pre-alpha中の最古の記録

1994年12月8日: ChangeLog-pre-alpha中の最後の記録

1994年12月8日: リポジトリ最古(1998年1月16日を参照)のChangeLog中の最古の記録「0.60 released - alpha test baseline.」

1995年1月10日: ChangeLog「0.64 released」

1995年2月1日: ChangeLog「version 0.65」(表現が「0.?? released」から「version 0.??」に変わる)

1995年12月21日(JST): ruby 0.95 公開( fj.sources に投稿 http://groups.google.com/forum/#!msg/fj.sources/bCc2JimcmAo/ONqCnbyG7LMJ

1995年12月21日(JST): [ruby-list:1]「ruby ついに公開ですね. / 早速 0.95 をコンパイルしました. / (略) / が, make test で, 失敗します. 」リプライ( [ruby-list:2] )では「以下のパッチで直ります.」

1996年2月7日: 『怪盗セイント・テール』(参 ウィキペディア)の「ルビィ」が [ruby-list:131] で紹介される

1996年4月10日: ChangeLog「version 0.98」ここまでは、だいたい0.[4-9][0-9](その後たまに[a-d])というバージョン番号になっている

1996年5月23日: ChangeLog「version 0.99-960523」0.99シリーズ開始

1996年12月24日: ChangeLog「version 0.99.4-961224」最後の0.99

1996年12月25日: ChangeLog「version 1.0-961225」最初の「クリスマスリリース」[ruby-list:1488]

1997年1月14日: 最後の日本語ChangeLog

1997年1月16日: 以降ChangeLogは全て英語

1997年7月28日(JST): [ruby-dev:1]

1997年8月13日(JST): 最初の1.1である1.1 alphaリリース [ruby-dev:123]

1997年10月: CQ出版社『TRY!PC』11月号に「ちょーわかりやすい!Perl & ruby 入門」

1997年12月25日(JST): 最後の1.0である1.0-971225リリース [ruby-list:5761]

1998年1月16日(UTC): リポジトリにおける最古の履歴。http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=2 からブラウズできるが、エンコーディングがEUCであるため日本語の部分が化けたりするので svn co -r 2 http://svn.ruby-lang.org/repos/ruby/trunk でチェックアウトして鑑賞することを薦める

1998年1月〜2月: fj.lang.ruby 誕生(CFD/CFA http://groups.google.com/forum/#!topic/fj.lang.misc/8XUEEiBbGVc 、2月10日頃コントロールメッセージが流れた [ruby-list:6555]

1998年2月2日: web.archive.orgに残る最古のRubyウェブページ http://web.archive.org/web/19980202033224/http://www.netlab.co.jp/ruby/ http://web.archive.org/web/19980202030331/http://www.netlab.co.jp/ruby/jp/

1998年12月17日(JST): [ruby-talk:113](bladeで確認可能な最古のruby-talk)

1998年12月24日(JST): 開発版である1.3リリース(元1.1d系) [ruby-dev:3962]

1998年12月25日(JST): 安定版である1.2リリース(元1.1c系) [ruby-list:11444]

1999年1月9日(JST): [ruby-dev:4084] call_ccが実装できてしまった、のはこの時

1999年1月: SVNではr372( http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=372 )でcallccが入っているが、他の多くの変更と一緒になっている。

1999年8月13日(JST): 1.4.0リリース [ruby-list:16118]

1999年9月: オブジェクト指向少女Rubyちゃんhttp://web.archive.org/web/20010210004212/http://lenz.pos.to/it/rubygirl.html

1999年10月: 『オブジェクト指向スクリプト言語Ruby』

1999年11月13日: OSSイベント「オープンソースまつり '99 in 秋葉原」にてまつもとさんによるセミナー「オブジェクト指向スクリプト言語Ruby」なお「オープンソースまつり」はもう1回、2001年にも開催された。「オープンソースまつり 2001 in 秋葉原」

1999年12月: 確認できた最古の、当史編者が書いたスクリプト( http://d.hatena.ne.jp/metanest/20100122/1264131273

2000年11月29日〜12月1日: Linux Conference 2000 Fallにて、(株)オライリー・ジャパン主催による「Perl/Ruby Conference」が開催

21世紀

(コミットがまとめて行われていたことについて)このころはまだgitは当然無く、Subversion(2000年誕生)も普及前で、CVSが一般に使われていた。rubyの開発においては、ある時期、まつもとさんの手元の非公開CVSリポジトリと、公開CVSリポジトリがあり、前者であるていど開発が進められてから後者にコミット、というスタイルだったことがあったため、そのスタイルの影響でしばらく「まとめてコミット」が多かった時代があった。

2001年5月26日: YARPC (Yet Another Ruby/Perl Conference) 19101 (日本初の、IT系イベントにおけるLightning Talks等。前田薫さんによる Lightning Talks日本上陸 も参照(YARPCでRのほうが先なのは、前年の Perl/Ruby Conference と逆にしただけ、だそうです))

2002年12月: 『Ruby ソースコード完全解説』この頃はまだ普通の技術書(クラッキング解説等ではない技術書)のタイトルに「Hacking」の語を入れることは冒険過ぎた。

2003年12月25日: 1.8.1リリース、1.8ブランチが分岐( http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=5291 )、trunkのRUBY_VERSIONが1.9.0に変更され、1.9開発が始まる( http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=5290 )。

2004年度: 2004年度未踏ユース「Rubyプログラムを高速に実行するための処理系の開発」

2004年9月: るびま1号

2004年9月〜10月: 「次のようにすると core を吐きます。」祭り。るびま2号「Ruby の落とし方」を参照。

2004年12月25日: 1.8.2リリース

2005年9月21日: 1.8.3リリース

2005年12月24日(25日ではない): 1.8.4リリース

2006年8月25日: 1.8.5リリース

2006年10月11日(JST): [ruby-dev:29649]において「あまり続くようだとコミット権剥奪するよw」

2006年10月20〜22日: RubyConf 2006 in Denver

2006年10月: (RubyConf後)デンバー合意 http://web.archive.org/web/20090806032131/http://redhanded.hobix.com/inspect/denverAccord.html

2006年11月6日: YARVマージ作業開始 [ruby-dev:29765]

2006年11月17日: DHH、檄文「The inevitable destruction of the WS-Deathstar」を発表( http://david.heinemeierhansson.com/arc/2006_11.htmlのページ下部)。SOAP枢軸のWSデススターが破壊され、REST叛乱軍による反攻開始(注: もちろんスターウォーズの引用であるが、WS-Deathstarという語は、あまりに多いため「WS-*」(WS-star)と総称されるSOAPウェブサービス関係の諸仕様等を揶揄してよく使われる語である。編者が「帝国」ではなく「枢軸」とした意図は解る人には解るでしょう)。

2006年12月4日: 「Rubyに何が起きたか」「Rubyの今後」http://web.archive.org/web/20071013194907/http://mput.dip.jp/mput/?date=20061204

2006年12月5日: 初のパッチリリースである1.8.5-p2リリース

2006年12月31日(UTC): r11439にてYARVマージhttp://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=11439[ruby-dev:30060]

2007年3月12日: 1.8.6リリース

2007年12月25日: 1.9.0リリース

2008年6月1日: 結果的に最後の1.8系となった1.8.7リリース

2009年1月30日: 1.9.1リリース

2010年8月18日: 1.9.2リリース

2010年12月26日(JST): [ruby-dev:42894] [Ruby 1.8-Feature#4207][Open] これから「1.8.8」の話をしよう -- 1.8がこの先生きのこるには

2011年7月10日(UTC): 1.9.3ブランチが分岐( http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=32501 )、2系に向けた開発が始まる。ただし当初は意思決定が明確になっておらずRUBY_VERSIONは1.9.4となっていたが、[ruby-dev:44604] Ruby 2.0 release plan から始まるスレッドにて2系への移行が明確化され、r33483( http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=33483 )でRUBY_VERSIONは2.0.0になった。

2011年10月31日: 1.9.3-p0リリース

2013年2月24日: 2.0.0-p0リリース

2013年6月27日: 1.8.7の最後のパッチリリース1.8.7-p374リリース

2013年10月20日: '10年代のRubyコア用語集 (卜部昌平のあまりreblogしないtumblr)(なお「マヨネーズ色の本に書いてある」というゼロ年代以前の用語集とは、現在の http://docs.ruby-lang.org/ja/2.2.0/doc/glossary.html のことである(ただし書籍では大幅に記述が強化されている))

2013年12月25日: 2.1.0リリース

2014年7月31日: 1.8.7(と1.9.2)の延長されていたサポート終了

2014年11月13日: 1.9.3の最後のパッチリリース1.9.3-p551リリース

2014年12月25日: 2.2.0リリース

2015年2月23日: 1.9.3のサポート終了