マイペースなRailsおじさん

Ruby、Ruby on Rails、オブジェクト指向設計を主なテーマとして扱います。だんだん大きくなっていくRuby on Rails製プロダクトのメンテナンス性を損なわない方法を考えたり考えなかったりしている人のブログです。

"Ask Me Anything" by DHH での質問と答え part1

www.youtube.com

これの質疑応答を日本語にしようとしましたが、ボリュームがすごくて全然ゴールが見えません。多分part5くらいまで行きます。

多分50%くらいは間違ってるんだと思います! 編集リクエスト、指摘、訂正お待ちしてます!!

誰か同じようなもの作ってないかなーとビビりつつ書いてます。 Youtubeの自動文字起こしを参考に書いてます。 日本語字幕つけたかったけど、あれって動画投稿者からのリクエストが必要なんですな~。

Railsdm運営の皆さん、素晴らしい動画を短期間で公開してくださり大変助かっています。本当にありがとうございます!

質問と答え

あなたは今どこにいて、そこは今何時ですか?

カリフォルニア州のマリブにいて、夕方のちょうど6時半です。

簡単に自己紹介をお願いします

私の名前はデイヴィッド・ハイネマイヤー・ハンソンです。Railsの作者で、2003年からRubyで仕事をしておりRailsにも同じ時期から取り組んでいます。Basecamp社の共同創業者で共同出資者で共同経営者です。

Basecampはrailsアプリケーションの起源です。 私はrailsをBasecampの外に持ち出して2004年にリリースし、それ以来ずっとrailsに取り組んできました。

私はRubyの大ファンです。Rubyは私をプログラマーになりたいと思わせ、またプログラマーであり続けたいと感じさせてくれるプログラミング言語です。長い年数経っても未だにRubyでプログラミングをし、楽しめていることをとても誇らしく思います。

2006年のRubyKaigiにRubyプログラマーとして来日したときの思い出を教えてください

とてもよいカンファレンスだったと記憶しています。 日本のRubyカンファレンスに行ったのはその時が初めてで、何に期待すればいいのかもよくわかりませんでしたが、ただただ素晴らしかったです。 とてもたくさんの幸せそうなプログラマーたちがいた事を思い出します。彼らのことを私は知らないのに、彼らはrailsを使っていたんです。 私はときどきオープンソースの開発者として、間違いなく自分のためにrailsをプログラミングしていると思います。私はただ家で座ってrailsを作っていて、私が作ったものを使っているプログラマーが何千人もいることなんて本当に気づいていないんです。 みなさんも、自分が作ったものを知らない誰かが仕事で使っていて、最終的にカンファレンスでそういう人たちに個人的に会ったときはちょっとした衝撃ですよね。信じられないことです。

私は日本でのRubyカンファレンスに行ってからだいぶ時間が経っていると言いましたが、実はプログラミングではなくてレーシングで日本にはほぼ毎年行っています。 だから、東京には10月にしばしば行って、富士スピードウェイでレースをしています。 私はRubyで仕事をし始める前から日本と日本の文化の大ファンなので、ほぼ毎年行けていることが嬉しいです。 いつかRubyKaigiに戻ってきます

一日の中でどれくらいRubyを書いていますか?

週によりますね。 本当に良い週は、ほとんどの時間をRubyを書いて過ごします。 あまり良くない週は、ほとんどプログラミングをしません。 大抵はひどく悪い週です。

少なくとも多くの時間をRubyを書くのに費やす機会を得たときは最高に良い週です。 BaseCampで新しいプロジェクトを動かしているときには、Rubyコードを書くたくさんの機会がありますし、Railsのために働くことにもなります。 Railsの新しいバージョン6のフレームワークであるaction textとaction mailboxは、新しいプロジェクトの成果から展開したものです。

そういった理由で、私は新しいプロジェクトで働くのが大好きです。 私はまっさらな状態からrailsアプリケーションを構築する機会を得ると、新しいアプリケーションで使うときどのようになるか見ます。過去のアプリケーションから新しいアプリケーションで再利用したいアイディアを展開して、railsがもっとできることを探します。 それがたくさんのRubyコードを書くきっかけになります。そういうときはいつもいい日ですね。

実際のところ、JavaScriptは自分で書いていますか?

かなり書いています。 私はここ何年かで、JavaScriptを書くことに前向きになりました。 私が2005年から2006年にJavaScriptを書かなければならなかったとき、たぶん私はあまりハッピーではありませんでした。 JavaScriptはかなり良くなったと思います。 私はJacvaScriptフレームワークの大ファンというわけではありませんが、モダンなツールや私の大好きなJavaScriptのエコシステムは言語自体態を良くしていっています。

Basecampでは、最近自分たちのためのJavaScriptフレームワークを作りました。 とてもミニマルなフレームワークで、Stimulusと呼んでいます。 だいたい2年位前だったと思いますが、クリスマス中座り込んで、我々がBaseCampで書いてきたすべてのJavaScriptコードをみて、どのようにするのか、いくつかの意味と順序を見つけようとしました。

Basecampでは、JavaScriptを書いていますが、モダンJavaScriptと呼ばれるようなものではありません。react.jsやvue.js、それらに類するフロントエンドのフレームワークを使いません。 我々はturbolinksをすべての基本として、たくさんのsprinkleを使い、それらを呼び出すのを好みます。すべてのHTMLで、殆どの場合はサーバーサイドでレンダリングされ、クライアントに送られると、少しの動的な魔法をふりかけます。

最近では、Stimulusを使ってそれらのsprinkleをカプセル化します。 これは、私がJavaScriptを書くのが好きではないということではありません。ただ、ほとんどのアプリケーションが最近他の界隈で考えられているほど大量のJavaScriptを必要としているとは思わないということです。もし、もう少し少ないJavaScriptともう少し多くのRubyで書けるなら、多くのアプリケーションはもっと速く、もっと弾力がある状態で、かつプログラマーがハッピーに作ることができるはずです。