更新情報

こんにちはー。今回も海外のRails関連のコラムを意訳してご紹介しますRailsの海外動向を理解する上での参考になれば幸いです。

###

Ruby on Railsの製作者であるDavid Heinemeier Hanssonが、Slashdotというサイト(コンピュータ関連ニュースの掲示板で、日本語版の名称は「スラド」)にて読者から投稿された多数の質問に回答しました。

彼のRailsに対する考え方が分かりますので、この中からいくつかのやり取りを紹介したいと思います。

  1. Ruby on Railsという名前に何か理由はありますか。もしかして汽車が登場する西部劇をたくさん観ていたのでしょうか。
  2. Strutsと呼ばれる古いJavaフレームワークからヒントを得て、まずRailsという名を思いつきました。Strutsという名前の短さと、作った人のテイストが名前に現れている点が気に入っていました。ところがrails.orgというドメインはすでに登録済みであったため、RubyOnRails.orgを取得しました。私はこの長い名前も終いには気に入るようになりました。この名前はRailsの本当の魔法であるRubyの使い方をハイライトしています。
  3. あなたはRailsの批判を派手に無視することで有名ですが、自身の経験(や失敗)から学び、Railsとは違う新しいフレームワークを作らなければと思うことはありませでしたか。別の言い方をすれば、Railsを抹消して、どんな種類の下位互換も気にせずにやり直せるとしたら、どこを違うようにやりますか。
  4. 概してRailsは今、私にとって理想的なウェブ開発フレームワークです。何か気に入らないことがあれば変更していますし、Railsは今でも柔軟に変化できます。我々は各メジャーバージョンごとに非常に大きな進歩をさせてきました。私がRailsを使っている時はいつも「これは可能な限りベストな状態であるか?」と考えていて、もし答えがNOならば、私はその問題を自分で解決しようと試みますし、少なくとも他の人が施行できるように記録を残しています。

ですので基本的には、私は何も変更しません。私は後悔を持って過去を振り返ることに多くの時間を費やしません。私の現在の立ち居地は、過去に歩んできた道筋にあります。もっと最適な道は無かったかとあれこれ考えるために過去のステップを振り返ることは、私にとって完全に時間の無駄のように思えます。それはサンクコストです。すでに通った道ですから。私が関心があるのは、前を見て、現在の立ち位置からどのように進歩していけるかを明らかにすることです。

  1. Pythonは人気のクリティカルマス(爆発的な普及をし始めるために必要な最小普及率)を超え、Rubyと同じような抽象度で動いていると思われます。もしあなたが今からRailsを作るならば、またRubyを選択しますか。その利点は何ですか。
  2. 多数の言語がクリティカルマスに達しているので、言語の選択においてクリティカルマスは重要ではありません。Rubyも10年前にクリティカルマスを超えました。しかし私はRubyがクリティカルマスに達する前にこの言語を選びました。なぜなら他の人がどのような言語を使っているかは私にとって大きな問題ではなかったからです。Railsは私が自分のために書いたRubyへのラブレターです。たとえ誰にも興味を持ってもらえなくても、それでも価値があるものでした。私は何よりも毎日Rubyを使ってソフトウェアを作りたくてRailsを作ったのです。

私はRubyのように自分に訴えかけるプログラミング言語をまだ見つけていません。魅力的に思える素晴らしいアイディアや特別な構成を持つ言語はありますが、Rubyのように私を湧き上がらせるものはありませんでした。私はRubyが好きだと恥ずかしげもなく言えます。Rubyを書くのも大好きですし、読むのも大好きです。

Pythonのことはとても尊敬していますが、私にとって何も効果はありませんでした。この二つの言語間には多くの共通する文化や資産があります。しかしなぜ愛すべきレベルに至っていない言語でソフトウェアを書くために自分の時間を費やすことがあるでしょうか。アドレナリン満載の別の言語、Rubyを使えるというのですから。

  1. 私はRailsの哲学を理解しようとしましたが、最終的に上手くいきませんでした。Railsには急な学習曲線があるように思えます。しかしRailsをひとたびマスターしてしまえば、その人はより生産性が高くなるようですね。まるで医師のようです。医師は医学部での長い道を経れば、お金などの大いなる利益が最後には待っています。Railsにはこのようなトレードオフがあるという主張は正しいと思いますか。そしてこの特徴は、コーダーが多数入れ替わる分散された部門においてどう作用すると思いますか。特に官僚政治のせいで、他のプラットフォームから雇ったコーダーを再教育するのが難しい場合にはどうですか。上層部から「Railsだけを使え」という命令が無い環境では、再教育のために増加する時間を正当化するのが厳しいです。Railsは一定の条件の組織環境にはフィットしないだろうということに賛成しますか。以上、よろしくお願いします。
  2. もしあなたの目標が現代的なれっきとしたウェブアプリケーションを作ることならば、私が知っているどんな環境でもRailsは学びにくくありません。確かにPHPのようなもっと簡単に始めることができる環境はありますし、私はPHPがその点を重視したことをとても尊重しています。しかし基礎の基礎を終えてしまうとすぐに、成長曲線がとても急になると思います。Railsにはたくさんの質問に対するたくさんの回答があり、それらの回答をとても革新的な方法で導入しています。例えば好ましいクエリメソッドを使っていれば、SQLインジェクションが何かについて学ぶ必要すらありません。しかしもしSQLインジェクションが何かを知らずにPHPの変数が埋め込まれたクエリでMySQLデータベースを使っていたら、危険な状態になってしまうでしょう。

第二に、私は従業員がコロコロ変わるような会社の問題を解決することについて全く問題にしていません。そういうところは低いスキルの労働者をできるだけ素早く掻き回すことが目的である悲惨な開発界だからです。ただおかしいのは、Railsには強力な規約があるので、実際はそのような環境でもきちんと動作するということです。ほとんどの人は一つのRailsアプリからまた別のRailsアプリへ移りながら、Railsがどんな仕組みになっているかを素早く理解していけます。自家製フレームワークを重要視したり、小さなパッケージを千個もまとめているような環境でそれを試してみてください。グッドラック。

実際問題、従業員がコロコロ変わるチームでのソフトウェア開発は大混乱になると思いますよ。

  1. あなたの出身地であるデンマークでは、なぜそんなに言語開発に熱心なのですか。
  2. 単にデンマークでは世界で広くコミニュケーションを取るためには外国語を学ばなければなりません。デンマーク語はおよそ600万人の人に話されていますが、外国人が学ぶのはほぼ不可能だからです。ですので我々の多くはこれらの要因によって、コンピュータやコミュニティとコミュニケーションをするための方法を考え出しているのだと思います。

質問と回答を他にも読みたい方は以下のリンク先をご覧ください。記事の後のコメントも含め、さまざまな人がRailsへの熱い思いを語っていて面白いと思いますよ。

<原文>

The Slashdot Interview With Ruby on Rails Creator David Heinemeier Hansson http://slashdot.org/story/315605