どのフレームワークが将来的に有望か

2009/01/11

前回のどのプログラミング言語が将来的に有望かに続いて、今回は Web アプリケーションのためのフレームワークに関するトレンドを探ってみたいと思います。

比較の軸になるのは、もちろん我らが Ruby on Rails です。

比較の対象は以下の通り(括弧内はフレームワークが記述されたプログラミング言語):

  • Apache Struts (Java)
  • JSF (Java)
  • Spring Framework (Java)
  • JSF (Java)
  • .NET Framework (C# 等)
  • Zend Framework (PHP)
  • Symfony (PHP)
  • CakePHP (PHP)
  • Mojavi (PHP)
  • Django (Python)
  • Catalyst (Perl)
  • Merb (Ruby)
  • ColdFusion (CFML 等)

Merb は次のバージョン 2.0 で、Ruby on Rails と一緒になることが発表されています。

今回は、TIOBE のような指標は存在しません。

まずは Google Trends から始めましょう。

Google Trends

Ruby on Rails の検索語としては、'ruby on rails' を使用しました。

実際には、'rails''ror' 等でも検索されるので、少し低めに出ると思われます。

フレームワークの名前には他の普通名詞や人名などと同一であるものもあるため、絶対値を比較しても意味がない場合がある点、最初にお断りしておきます。

vs. Apache Struts

trends-rails-struts

'struts' で検索数を比較。

strut は、「支柱」などの意味を持つ普通名詞でもあるので、やや多く出ているかもしれませんが、誤差はそれほど多くないでしょう。

2004 年以降、検索数は長期低落傾向にあります。

vs. Spring Framework

trends-rails-spring

Spring Framework 1.0 のリリースが 2004 年 3 月ですので、グラフはほぼ Spring Framework を探している人の数を示していると思われます。

2006年をピークに、検索数は少しずつ下がってきています。

しかし、このフレームワークが普及するにつれ、単に 'spring' でも関連するページがヒットするようになったはずなので、その影響があるかもしれません。

vs. JSF

trends-rails-jsf

JSF (JavaServer Faces) Specification 1.0 のリリースは 2004 年 3 月です。

'jsf' が略語になる有力な語句は他にありませんので、グラフはかなり信用できると思われます。

2006-2007 年がピークで、2008 年になって少し検索数が低下しています。Rails とよく似たカーブです。

ただし、ニュース参照数は Rails よりもかなり多く出ています。

vs. .NET Framework

trends-rails-dotnet

2004 年以降、右肩上がりで検索数が伸びています。

Microsoft は大成功しているようですね。

2008 年末で、Ruby on Rails の 6 倍の検索数ですが、おそらく '.net' で検索する人の方が多いので、絶対値で比較しても意味がありません。

また、.NET Framework は Web 開発以外にも使われる、という事実も加味する必要があります。

vs. Zend Framework

trends-rails-zend

Zend Framework は、後述の Symfony および CakePHP と同時期に登場した PHP による Web フレームワークの 1 つです。

2008 年に向かって徐々に検索数が伸びてきています。

vs. Symfony

trends-rails-symfony

2006 年に登場して以来、右肩上がりです。

Symfony は symphony からの造語ですから、グラフは絶対値としてもかなり信用できます。

vs. CakePHP

trends-rails-cakephp

Symfony とほぼ同じような軌跡をたどっています。

vs. Mojavi

trends-rails-mojavi

このフレームワークは、ブレークしなかったようですね。

vs. Django

trends-rails-django

django という語は、ジプシー・ジャズの Django Reinhardt に由来しています。

マンガ『ONE PIECE』の登場人物としても使われているため、もともと一定の検索数があります。

Web 開発フレームワークとしての Django の登場は、2005 年 7 月です。

グラフの 1.00 より上の部分がフレームワークを探している人の数に対応すると仮定できます。

この仮定の下では、2006 年以降右肩上がりで伸びてきていると言えます。

また、2007 年からニュース参照数が増えている点も特筆されます。

vs. Catalyst

trends-rails-catalyst

catalyst という語には「触媒」という意味があり、そちらの意味で頻繁に検索されているはずです。

そのため、'catalyst framework' で検索数を比較しました。

絶対値での比較は意味がありません。

グラフの高さが低すぎてよく見えませんが、2006 年の秋に登場し、2007 年以降徐々に検索数が低下しています。

vs. Merb

trends-rails-merb

現在、merb で検索すると、ほぼこのフレームワークに関するページにばかりヒットします。

しかし、Merb 0.5 の登場が 2008 年 1 月であることを考えると、2005-2007 年のグラフは他の語に対する検索であったと考えられます。

国別の検索数を調べると圧倒的にカナダが多いので、カナダで何か意味のある語句なのでしょう。

2008 年の第 4 四半期にニュース参照数が急に増えています。

Rails との「合併」の話が発表されたのは 2008 年 12 月ですので、必ずしもその結果ではありません。

Merb 1.0 が 11 月の RubyConf で発表されたのがきっかけでしょうか。

ただ、グラフを見る限りでは“ブレーク”したとは言えなさそうです。

vs. ColdFusion

trends-rails-coldfusion

最後に、Adobe のフレームワーク ColdFusion。老舗のフレームワークです。

長期低落傾向にあります。

求人数の動向(indeed.com)

次に、indeed.com の Job Trends による求人数の推移です。

Struts, Spring, JSF

job-struts-spring-jsf-rails

'spring' だけだと多く出過ぎるので 'spring framework' で調べました。

Struts の求人数は高止まりしています。

他の 3 つは同じような軌跡をたどって、順調に伸びてきています。

.NET Framework

job-dotnet-rails

'.net framework''ruby on rails' で比較しました。

Zend Framework, Symfony, CakePHP、Mojavi

job-zend-symfony-cakephp-mojavi-rails

PHP のフレームワークを指定しての求人はまだ少ないようです。

必ずしも PHP 業界でフレームワークが使われていないことを意味するわけではありませんが、Rails との差は印象的です。

フレームワーク同士の違いを際だたせるため、Rails 抜きのグラフにするとこうなります。

job-zend-symfony-cakephp-mojavi

2007 年の夏ぐらいから、PHP フレームワークを指定しての求人が急上昇しています。

このグラフからも、PHP ではこの 3 つのフレームワークが激しく競争していることが読み取れます。

Catalyst

job-zend-catalyst

catalyst framework でグラフを作りました。

Rails とはほとんど比較にならなかったので、参考のため zend framework と比較してみました。

産業界での需要は限られているようです。

Django

job-django-rails

Rails に少し遅れて、Django の労働市場が立ち上がりつつあります。

ColdFusion

job-coldfusion-rails

Google Trends では長期低落傾向にあった ColdFusion ですが、安定した求人数を維持しています。

しかし、2008 年末になると Rails に逆転を許してしまいました。

結語

印象深いのは、.NET Framework の成功です。

プログラミング言語 C# の人気がここ数年で大きく伸びたことからも裏付けられます。

ただし、.NET Framework はクライアントアプリケーションや組み込みデバイスのアプリケーションの開発にも使われていますので、Web 開発フレームワークとしてどのくらい成功しているのか、よくわかりません。

Java 業界では JSF や Spring Framework などの新しいフレームワークが健闘していますが、「席巻」というほどには至っていません。Struts が成功しすぎたのかもしれません。あるいは、Struts の後継候補が乱立したことが影響したのかもしれません。

軽量言語(Perl, PHP, Python, Ruby)のフレームワークの中では、やはり Ruby on Rails の人気が高いと言えます。

ただし、検索数の推移から見ると、いわゆる hype は過ぎ去ったようです。ちょっと心配です。

しかし、求人数の推移から見ると産業界に受容される段階に入ったことが感じられます。

PHP 業界では、Web フレームワークの本格的な採用が始まったばかりです。

Zend Framework, Symfony および CakePHP がデッドヒートを繰り広げています。

PHP 業界内部での競争には、いい面と悪い面があるでしょう。

品質向上の原動力になりますが、産業界の PHP エンジニアたちは決着が付くまで様子を見ようとするかもしれません。

Perl の Catalyst については、ブレークの兆しは読み取れませんでした。

Python のフレームワーク Django は短期間で力を付けてきています。

Python はプログラマー数の多さで Ruby よりも有利であり、今後 Rails を脅かす存在になる可能性があります。