Ruby

まつもとゆきひろ(Matz)が 1993 年に開発を始め、1995 年に最初のパブリックリリースを出した 動的型・オブジェクト指向の汎用プログラミング言語。「プログラマの幸福(programmer happiness)」を一次価値に据えた稀な言語で、後に rails のランタイムとして英語圏で爆発的に普及した。

何のために作られたか

Matz が設計時に明示した目標は「Perl より高機能でオブジェクト指向、Smalltalk より実用的、Lisp より読みやすい」言語。

言語特徴(rails にとって本質的なもの)

rails が成立する上で Ruby のどの特徴が効いたかという観点で整理する。

特徴Rails での使われ方
すべてがオブジェクト(プリミティブも含めて)5.times do ... end のような自然な記法
ブロック(クロージャ)`posts.each {
メタプログラミング(define_method, method_missing, class_eval)has_many :comments 一行でアクセサ・関連メソッド群が動的生成される魔法の正体
オープンクラス(既存クラスを開いて拡張可能)Rails の 2.weeks.ago のような ActiveSupport 拡張
シンボル :name と Hash リテラル設定オプションを自然に書ける(render :json => @post)
括弧省略可能なメソッド呼び出しvalidates :title, presence: true が宣言文に見える
暗黙の selfDSL 内で context が自然
mixin / module多重継承の代替として薄く機能を混ぜ込める

これらが揃って初めて、class Post < ActiveRecord::Base; has_many :comments; end が「コードに見えない設定」になる。同じ機能を Java で書こうとすると注釈と XML と setter が並んで宣言の見通しが消える。

「書いていて気持ちいい」を価値にした稀さ

Ruby の差別化は機能ではなく 態度 にある。

この態度が、当時 Java や C++ に疲れたプログラマの受け皿になった。Ruby が「カッコいい言語」だったのは、機能ではなくこの態度の故。

Ruby を温めた人々(Rails 普及前夜)

Rails が 2004 年に登場するまでに、Ruby は英語圏で既に文化的な土台ができていた。

つまり 2004 年時点で Ruby は 「機能で勝負する小規模言語」ではなく「文化的に温まったオルタナティブ」 として既にポジションを取っていた。rails はこの土壌の上で芽吹いた。

現在の立ち位置

押さえどころ(カード化候補)

関連

Graph