「Hook」という単語は日本語でも鍵状に曲がったひっかかりを「ホック」と呼んで使っていますが、「I am hooked on Rails」という場合、「病み付きになる、夢中になる」という意味があります。
Ruby on Railsが最初にリリースされたのは、2004年の7月。その年のRubyConfでは、作者であるDavid Heinemeier Hansson(DHH)の発表で話題がもちきりだったそうです。当時その会場に参加者として来場していたJamis Buck(元Railsのコア開発メンバーで、CapistranoというRailsデプロイするライブラリの作者としても有名です)は、そのときにDHHが話した「みんなをHookさせるための秘訣」を以下のように述べています(リンク)。
He spoke, half jokingly, about how part of getting people to adopt a framework like this (where you are more-or-less forcing people to do things your way) is to allow them to configure things just a little.
「半分冗談混じりに彼はこういっていたよ。ぼくの考えるフレームワークに、みんなに従ってもらうためには、ちょっとだけカスタマイズ可能にすることなんだよね」
The trick, David said, was to get them to at least use the framework and see how cool it is. Once they’re hooked, they’ll conform. :)
「コツは、少なくともフレームワークを使ってもらってそれがクールだと分かってもらうことなんだ。一度みんなHookしてくれると、それからはみんなぼく流にしてくれるからね」
「Convention Over Configuration」(規約は設定に勝る)という言葉、Railsのプログラミング哲学としてよく挙げられますが、これは実はRailsを広めるための重要なマーケティングツールとして機能していたのです。
Railsが初めての人に「ActiveRecordを使えばSQLをダイナミックに生成してくれるし、RESTfulでCRUD操作も簡単」と機能を羅列してもチンプンカンプンです。
それよりも「オレが5分でブログアプリ作ってやる」と宣言して、
rails g scaffold post title:string body:text rake db:migrate rails s
「以上!」と、本当にブログができ上がっている方がよっぽど分かりやすいです。そしてちょっとカスタマイズしたい場合、
r g scaffold comment body:text post_id:integer rake db:migrate class Post < ActiveRecord::Base has_many :comments end
「同じようにコメントを作った後、has_many :comments を付け加えて、ちょこっと変更したら終わりだから」というのが本当に分かりやすいです。
「Show, don't tell: Seeing is believing」とRails公式サイトにもうたわれていますね。最初のイントロダクションをスクリーンキャストで紹介するのは、Railがはしりだったと思いますが、これがもし「1時間で作るブログアプリ」だったら、ここまでRailsが有名にはなっていなかったでしょう。
ちなみに今回使用したScaffoldもマーケティングツールですので、実際のプロジェクトで使用するのは控えましょう ;-)
いままで難しいと思っていたことが簡単にできると分かると、「あれもできるかな?」「これもできるかな?」といったアイデアがぽんぽん浮かんでくるものです。
私の場合はまずチュートリアルで作ったブログシステムのコメント機能をカスタマイズすることから始まり、「いや、独自のブログシステムを作るよりも、コメント機能に特化したシステムを作ったら面白いんじゃない?」といったアイデアが思い浮かびました。そのアイデアを実現するべく共同開発者をリクルート、プログラミングコンテストに応募、会社を退職して起業コンテストに応募、起業の夢破れるも開発の面白さにのめり込み、今の会社でウェブエンジニアとして働くまでにいたりました。たった4年の出来事ですが、まさにRailsが私の人生を変えたといってもいいような気がします。
これからRailsを始めようと思っている人、あるいは始めたばかりのみなさんは、Railsとともに、どんな冒険が待ち受けているのか楽しみですね。
次回は私がRailsを学んでいく過程を振り返っていくことで、皆さんの学習の参考になればと思います。
Railsで目指せ、情熱エンジニア
Page1
金融機関とベンチャー企業のスキルギャップ
ベストプラクティスを身に付けるためのプログラミング言語を求めて
How to build a blog engine in 15 minutes with Ruby on Rails
Page2
「Hooked」(夢中になる)
アイデアを実現するためのツールとしてのRails
Copyright © ITmedia, Inc. All Rights Reserved.