ウェブアプリケーションフレームワークはオワコン?

2017/3/22作成

仕事で久し振りに新規のウェブアプリケーションを開発することになったので、ウェブアプリケーションフレームワークについて調べていました。私は以前はCakePHP2を使っていたことがありますので、その後継のCakePHP3でいくつもりなのですが、一応他の情報とかも調べました。その中で感じたのは、どうもウェブアプリケーションフレームワークが下火になっているのかなという気がします。もちろん実際には使われているのでしょうけれど、あまり話題にならなくなったといいますか。

最初にウェブアプリケーションフレームワークのブームが起こったのはRuby on Railsの登場ですから2005年頃ですかね。それ以前にもJavaの世界ではStrutsなどが使われていましたのでウェブアプリケーションフレームワークが無かったわけでもないのですが、Ruby on Railsの人気はやはりスゴかったように思います。その後、多数のウェブアプリケーションフレームワークが登場して使われまして、私がかつて使っていたCakePHP2もその中のひとつなわけです。CakePHP2もそれなりに人気というか話題になっていたように思います。

が、今回調べていて感じたのですが、どうもかつてのような熱気が感じられない。情報を探していても、質量ともに充実していない。CakePHP3なんてリリースされて2年も経つのに、リリース前の開発版を紹介する記事が検索上位にがんがん出てくるような状況です。書籍にしてもCakePHP2の本はかなり多く出版されていましたが、CakePHP3を対象にしたものはそれほど多くないようです。

PHP界のウェブアプリケーションフレームワークではCakePHPよりもLaravelの方が人気がでてきたという話もあるようですが、ではLaravelの情報がたくさんあるかというとそうでもない。つまり、人々の興味がウェブアプリケーションフレームワークから失われたような感じなんですね。

もちろん、ウェブアプリケーションフレームワークが使われなくなったというわけではないでしょうから、これは使うのが当たり前になっていちいち話題に上らなくなったのかなぁということなのかもしれません。実際のところはわかりませんが。何か別の技術に代替されたというわけでもないでしょうし。ウェブアプリケーション自体がもしかしたら話題のメインストリームから降りつつあるのかもしれないですね。今時でしたら機械学習とかIoTとかの方が人々の注目を集めてるでしょうから、興味はそっちにいってしまって、ウェブアプリケーションフレームワークはあるのが当たり前になったのかもしれません。

(2017/6/22追記)

この記事に「Ruby on Rails オワコン」で検索して来られる方が時々いらっしゃるようです。そんな恐ろしいことを書いたつもりはまったくないのですが、検索時のキーワードには確かにヒットするでしょうから、まあ仕方ないですか。求める情報がなくてすいません。

というお詫びだけを書くつもりだったんですが、実は最近仕事でRuby on Railsも使うことになりました。CakePHPだのRuby on Railsだのと節操がないですが、まあ仕事ってそんなもんですよね。でまあ、実際にRuby on Railsを使ってみて、これはもしかしてオワコンってのも一理あるかなぁと思ったので、それについて少し書きます。

前提として私のRuby on Railsの経験値ですが、ほぼゼロです。Ruby on RailsどころかRuby自体がほとんど使ったことがありません。これまで、意識してJavaとRubyの仕事は避けてきたんですよね。なんかこれらの言語は自分にとって地雷が多そうな気がしたので。しかし、今回避けきれずにRubyとRuby on Railsを使うことになりました。ということで、RubyもRuby on Railsも実務経験はせいぜい数日から数週間と言ったところです。

「そんな程度の経験値でRuby on Railsを語るんじゃねえ!」って声は当然あると思うんですが、実はそれこそがまさに感じたことなんですよ。数日から数週間程度触ったくらいではとても語れないくらいにRuby on Railsというのは巨大なフレームワークだというのがオワコンかとおもった理由です。

Ruby on Railsはフルスタックフレームワークですし、その中でも多機能を誇るウェブアプリケーションフレームワークです。学習コストは当然に高いです。私はまだその域に達してないので想像ですが、一通りの機能を習得したと言えるまでには数ヶ月はかかるのではないでしょうか。今後、ずっとRuby on Railsを業務の主力として使っていくというのであれば、その学習コストも先行投資として見合うことでしょう。しかし、みんながみんなそんな業務にいそしむわけではありません。今回の私のように、開発期間数ヶ月程度の小さな単発プロジェクトでフレームワークとしてRuby on Railsを指定されたために仕方なく勉強してるという場合もあるわけです。この場合、Ruby on Railsの学習だけで数ヶ月という期間はとても取れません。なので、とっかかりのチュートリアルを軽くこなしたあとは、実地に開発しながら泥縄に調べるなんてやり方をせざるを得ません。正直、こんな状態のプロジェクトであればRuby on Railsを採用するのは間違いだと思うのですが、そうも言えない大人の事情っていっぱいあるんですよね。残念ながら。

Ruby on Railsはレールに乗れば高速に開発が出来るわけです。それは事実なのでしょうが、実際にはレールに乗るための準備がとても膨大なわけです。レールに乗れない場合は、むしろウェブアプリケーションフレームワークを使わない場合よりも開発速度が遅くなってしまっているかもしれない。だって、ある機能をどうやって実装したらいいかってのはわかるのですが、それをRuby on Railsでどうやって記述するのかというのを調べてる時間が一番長いんですもの。

すでにRuby on Railsを習得してるエキスパートの人は、Ruby on Railsの高速開発のメリットを100%享受できるでしょう。それは間違いないと思います。しかし、私のようにかじった程度の者はとてもその恩恵をうけることができません。であれば、これから新規にRuby on Railsを学習して参入してくる人ってのはそれほど多くないのかもしれない。既存のユーザが使い続けるだけであれば先細りになっていってしまう。これが、Ruby on Railsがオワコンかもしれないと思った理由です。

こうしたフルスタックフレームワークへのアンチテーゼとして、マイクロフレームワークというのもありますね。フレームワークの必要な機能を小さく分解していますので、個々の学習コストは比較的小さくて済みます。もっとも、この場合はマイクロフレームワーク同士を組み合わせたときの相性問題が発生することがありますし、ウェブアプリケーションのすべての機能を作り込んだら結局フルスタックフレームワークを使ったのと同じくらいの学習コストになってしまったということもありえますので、一概にマイクロフレームワークがいいとも言えませんね。でも、機能が限定されていたり、ちょっとした小さなアプリケーションであったりするなら、マイクロフレームワークという選択肢もありではないかなぁと思った次第。


あおやぎのさいと2.0 トドの日記2.0