Railsがもう一段普及するためには
まず、「(私が)新企業のためにRailsを使わなくなった理由」というタイトルがついたブログ記事を紹介します。
ブログ本文:
http://blog.jaredfriedman.com/2015/09/15/why-i-wouldnt-use-rails-for-a-new-company/
この記事はRuby Weeklyでも取り上げられ、賛否両論あったようです。
※当該Ruby Weekly http://rubyweekly.com/issues/265
最初にビジネスコンサルタントとしての私の見解を述べます。私の見解は以前以下のコラムでも解説している通り、現在は、ハイプカーブの幻滅期にあるため、これからが本格普及の時期だと思っています。これは以下のコラムに書いている数字からも読み取れます。
『Ruby on Rails市場は本当に伸びているのか?数字から読み取る市場成長率の実際』
http://resocia.jp/column/3563/
簡単ではありますが、「新企業のためにRailsを使わなくなった理由」コラムの要約をいたしました。皆様、どう感じますでしょうか?
###
Scribdはトラフィックにおいて3番目に大きなRailsサイトとして成長しました。しかし最近は、新しい企業でRailsを選択するのは間違いだと感じています。
私は2006年からRailsを使用しています。最初のバージョンのScribdはmigrationのような機能もなかった頃のRails 0.7で作成しました。
当時多くの新規サイトはPHPやJavaで書かれ、それらの言語には多くのエンジニアがいました。Railsは安全な選択肢ではありませんでしたが、私はRailsは伸びると確信していました。
その確信は正しく、Scribdは世界No.3の巨大サイトになり、RailsもScribdと共に成長し、シリコンバレーの新しいスタートアップにおけるデフォルトのアプリケーションとなりました。PHPやASP.NETの開発者たちは先行きを案じ、転換先の仕事を探しました。
しかし現在、Railsの全盛期は過ぎたのではないかと危惧しています。Railsで新しい会社を始めることは、2007年当時にJava Springを使い始めるようなものかもしれません。
このグラフはGoogleでの検索ボリュームを表しています。Railsが新しいフレームワークに取って変わられていることが分かります。
吉政注釈:このカーブこそハイプカーブそのものだと思うのです。技術は必ず情報加熱の流行期が過ぎて、冷静なって、そこからのじわじわと伸びていくのが通常です。また、検索ボリュームと実態は違います。検索ボリュームで言うならJavaなんかはとっくの昔に消滅しています。いまだに米国でも日本でも仕事の件数は一位です。(ただ米国ではようやく落ち始めました)
Railsの大きな問題はrubyです。rubyが遅いことは周知の事実で、他の言語に比べてかなり遅いことがこの図で分かります。
rubyが遅い理由は言語設計の特徴のせいとも言われていますが、一番深刻な問題はメインスポンサーがついていないことではないでしょうか。
2007年当時はPythonもPHPもJavascriptもみんな遅い言語でした。その後FacebookがPHPに莫大な投資をし、PHPは速くなりました。Googleは高速のJavaScript JITコンパイラを作ったことで、偶然にもサーバーサイドのJavaScriptを急増させました。
rubyのインタプリタはボランティアの功績に過ぎません。2007年から2012年にかけて、Rubinius、JRuby、YARVなど多くの団体がrubyのインタプリタを修正し速度を高めるために尽力しました。しかしJRuby以外のボランティアたちは次第にやる気をなくしてしまいました。
FacebookがPHPを成長させたように、Twitterも、Railsを使って成長した最初の主要な技術企業として、rubyを改善できたはずです。しかしTwitterのエンジニアたちは、わざわざrubyを成長させるよりも元々速い言語を選択する方が楽だと考えました。
Railsは一般的なウェブアプリケーションを速く書くための多くのコンセプトを先駆けて開発しましたが、時を経て他のフレームワークもそれらの工夫を取り入れたため、差がなくなってしまいました。
と同時にRailsの開発は失速しました。Rails 3は2010年8月にリリースされましたが、更新内容が魅力的でなかったため、GitHubは4年もの間アップグレードしませんでした。ScribdでのRails 3へのアップグレードを鑑みると、今後Rails 4にアップグレードするかどうかは微妙なところでした。
JavaScriptが益々革新されている一方で、フロントエンド開発のRailsが低迷していることは興味深いことです。過去7年間で、私たちのバックエンドは徐々に変化したまでですが、フロントエンドはプロトタイプからjQuery、Coffeescript、Angular、Reactへと生産性を向上しながら様変わりしてきました。
過去2年間においては、プログラミングブートキャンプの革新がありました。ブートキャンプは様々なことを教えてくれましたが、サーバーサイドのことになると、他の言語よりもRailsを圧倒的に勧めてきました。おそらくこれは、スタートアップにおいては未だにRails開発者に多量の需要があるという市場の答えなのだと思います。
しかしコンピュータサイエンスの学位を持つような本格的な開発者は、ブートキャンプのプログラムを「programming light」といって見下しています。私は、経験豊富な開発者たちRailsの匙を投げているという不穏なトレンドに気が付きました。
Railsに取って代わるためには、いくつかのフレームワークが強力な競争相手として立ちふさがります。AngelList(訳注:起業家とエンジェル投資家をつなげるSNS)上で人気のある企業で使われているサーバー言語のブレークダウン(http://codingvc.com/which-technologies-do-startups-use-an-exploration-of-angellist-data)を見ると、Node.jsが筆頭であることが分かります。
そしてこちら(https://jaredfriedman.files.wordpress.com/2015/08/88245d42-4186-416f-bb53-4f95c0ead275.png)は、indeed.com上のジョブトレンドにおける成長率です。
新しい言語には必ず難点があります。Node.jsはフレームワークが複数の派閥に分かれてしまいましたし、Goはミニマムスタートでは魅力的ですがスケール性に欠けています。DjangoやPythonは堅実ですが、あまり成長していません。
もし新しいアプリの将来を確実なものにしたいならば、エンジニアたちがこの先3年間使いたいと思っている言語やフレームワークに掛けてみるべきです。Facebookでえあれば何を使おうがみんなFacebookのために働きたいと思ってくれるでしょうが、ほとんどの企業はFacebookと同列ではありません。もし正しい選択をして早期着手できたならば、次の人気フレームワークが起こすビッグウェーブに乗れるでしょう。
###以上、意訳はここまでです。
私はこのコラムを読んで、「おいおい!」と思うことも多々あり、すんなり読み込めないところもありました。ただ、私の中で賛成できるのは、RubyにはRuby開発に投資ができる大型のスポンサーが必要ということでした。Rubyの開発者に給与を支払いRubyの開発を推進し、そのメリットにより事業を推進できる大きな会社がほしいです。日系でもいいですし、外資でもいいです。OSSにコミットしている上場企業もしくは未上場でもいいので、財力がある会社の社長さん、いかがでしょうか?
その昔、私が在籍していた会社では、OSSコミッターを雇用し、OSSの開発に業界貢献として給与を支払っていた会社がありました。素晴らしい試みでした。そういう企業がもっと増えると良いと思います。
そんなに言うなら、「吉政さんが、やればいいんじゃないの?」という話もあると思いますが、財力を得たらやります。あと宝くじが当たった場合でも公言している通りやります。(なんて不確定な宣言なんでしょ。ごめんなさい)
皆さんは、どうお考えですか?
###<補足>
このコラムをしっかり読んでいない方からは、今回取り上げた海外で話題になっているコラムを私が書いたコラムと勘違いされてしまっていたようで、お叱りを頂いたりしてしまいました。
私が言いたいのは後半にも書いていますが、OSSがある一定以上発展するためにはビジネスとの融合が必要で、企業による投資が有効だと思っています。これは15年以上OSSに携わり、私自身もOSSのメーカー側にいたのでその経験からも言えます。
私はherokuさんも、OSSフルコミッターのこともよく知っています。herokuさんは私の団体の特別協賛会社ですし、以前私が役員をしていた会社ではOSSフルコミッターを雇用していますので、そのあたりは知っています。
ただ、反省するべきことはちょっと軽く書きすぎたかなと思っています。不快に思われた方すみませんでした。
###
※本コラムは匿名の意見を頂きたくないため、コメントは不可としました。是非、Twitter、Facebook、ご自身のブログ等で議論を展開してみてください。
追伸:こんな文章を書く、私はどんな生活をしているかと言うと、、、以下のFacebookアカウントを見てください。
https://www.facebook.com/tadashi.yoshimasa
※面識のない人からのお友達申請は原則NGです。お友達申請されるときはメッセージもお願いします。ほぼ100%情報公開しているので、フォローするだけで全部見えます。
Facebookアカウント+とるに足らない情報を以下のTwitterアカウントで垂れ流しています。宜しければFollow下さい。一番ぶっちゃけているのは土日のTwitterではありますが、平日は弊社のクライアントの宣伝もバンバン流れますw