SCHEDULE

Akira Matsuda

Rubyコミッター、Railsコミッター。Gem作家。RubyKaigiチーフオーガナイザー。Asakusa.rb主催。最後のRuby Hero。最新のRails Luminary。

SESSION

Rubyで世界を作ってみる話

オブジェクト指向プログラミング(OOP)を初めて学んだ時、OOPなら全てを表現できる!と教わったものです。たとえば、動物という抽象クラスを継承した犬クラスと猫クラスがあって、どっちも`鳴く`メソッドを呼ぶとポリモーフィックに"ワン"とか"ニャー"とか鳴かせれるんですよ!みたいな?確かに世界は全てオブジェクトでできてる気がするし、それらのデータと振る舞いとしてうまいことモデリングすれば作れないものはない!……気がしてきます。 実際、リンネ先生があらゆる生物をツリー構造で分類してみたところ、この体系は数百年経っても破綻せずに使い続けられてるわけです。つまり、生物は全てRubyのclassで表現できますよね。真無盲腸目ハリネズミ科とネズミ目ヤマアラシ科の生物はツリー上では全く違うところに居るのにめちゃ似てるじゃん?っていう疑問も、平行進化の過程で獲得した「トゲトゲ」moduleをincludeしてやれば、ほらでき上がり! なんか界隈では近年OOPオワコン説みたいなのが聞かれますが、みんな窮屈なフレームワークに縛られすぎて、あるいはお仕事の業務アプリがプログラミングの全てだと思い込んでしまって、Rubyの表現力を過小評価してませんか?そこで、今日は初心に帰って素直に世界の全てを実装し直してみようと思います。とりあえず出発点は、このへんから始めてみましょうか。 class Atom end

関西Ruby会議08 ©2025

Designed by reina