おすすめのWebアプリケーションフレームワークをランキング形式で紹介【プログラミング】
この記事は、運営チームとユーザーの投票によって「おすすめ」された、人気の「Webフレームワーク」をランキング形式で紹介しています。
1位から順に表示され、スクロールするほどランキング下位になります。各フレームワークには公式サイトおよびGitHubのリポジトリへのリンクを貼っているので、興味のあるフレームワークがあればそちら詳しい情報を参照してください。
皆さんが、使ってみたいと思えるフレームワークを見つけて、開発のお役に立つことができれば幸いです。
1位 Ruby on Rails (Ruby)
- Rubyを象徴するフルスタックフレームワーク
- 日本語情報が多く、学習しやすい

- メディア大型本
- 作者すがわら まさのり
- 出版・メーカー技術評論社
- 発売日2014-06-06
2位 Express (Node.js)
- Nodeの標準フレームワーク
- モダンなフロントエンド開発でも使用される

他言語からNodeを学習してExpressを初めて触る人は、Expressが最も有力なフレームワークと知ったら「これだけのものが?」と疑問に思うかもしれません。(自分がそうでした)
実際Express本体は、本当にコアな機能しか提供されておらず、クッキーの機能ですら外部ライブラリに頼っているほどです。そもそもNodeのエコシステム自体が個々の小さなコンポーネントを組み合わせることが主流となっており、フルスタックのフレームワークはむしろ異質なものだという認識です。
Expressで一定以上のアプリケーションを作る場合は、規約がほとんど一切ないので開発者がレールを敷く必要があります。ここで上手くレールを敷ければスケールできるのですが、初心者の場合はむしろレールがないとどうしたらいいかわかなくなってしまうので、案外上級者向きなフレームワークなのかもしれません。
Node.jsの象徴的なWebフレームワークです。公式サイトにある「特定の意見に固執しない、Node.js 向けの高速で最小限の Web フレームワーク」という言葉に全て含まれているような気もします。
Expressが使えたら即座に何かを作れる、というよりもExpressのコア機能はNode.jsでWebアプリを作るために必要な最低限の知識といったもので、Nodeをやるのなら誰しも使うフレームワークだと思います。
サンプルアプリを動かす時に当然のように使われていたり、最近だとwebpack dev serverでフロントエンドの開発をする際にも使用されています。
- メディアKindle版
- 作者掌田津耶乃
- 出版・メーカーTuyano-Project
- 発売日2015-03-14
3位 Laravel (PHP)
- PHPフレームワークで一番人気
- モダンな開発支援機能が満載

端的に言うと、全部乗せの典型的なフルスタックフレームワーク。ただフルスタックとっても取っ掛かりにくいわけではなく、むしろ逆で、開発しやすいように全部乗せをしたというだけのこと。
基本的なフレームワークとしての機能はもちろん備わっているほか、非同期タスクやCronジョブにも対応しています。また、AWSを始めとした主要なクラウドサーバーとの連携、RedisやMemcachedのようなインメモリDBへの対応、Github連携といった昨今のWeb開発に特化した機能も充実しているので、開発フローを自分で手を加える必要はほぼありません。
唯一パフォーマンスは弱点ですが、LumemというLaravelのマイクロ版を使えばそこそこパフォーマンスは上がります。とはいえ過度にパフォーマンスを気にするのならPHPという言語自体を見直す必要があるかも知れませんし、PHPフレームワークの中では間違いなくオススメできます。
現在Githubで25,000以上のスターを集めており、PHPのWebフレームワークとしては最も注目されているフレームワークです。Googleトレンドを見ても右肩上がりで、当面はlaravelがトップをリードする状況は変わらないのではないでしょうか。
初学者向きのフレームワークではないですが、速度よりも開発のしやすさに重きを置かれており、学習コストはさほど高くありません。紹介文である「A PHP Framework For Web Artisans」にあるように、開発者が気持よくプログラムを書けることが思想となっています。
- メディアKindle版
- 作者新原 雅司
- 出版・メーカーインプレス
- 発売日2016-01-08
4位 CakePHP (PHP)
- PHPの定番フレームワーク
- 日本でのコミュニティが活発

Ruby on RailsのMVC構成や思想の特徴を引き継いでいると言われており、Railsが登場した翌年の2005年から開発されている。Railsと同じく規約が強く組み込まれており、開発者はアプリケーション特有の開発に専念しやすくなっている(とはいえ今ではRailsもCakeも独自の進化を遂げているので、極端に似ているというわけではない。)
フルスタックなフレームワークの他ではシンプルな構成となっており、小規模の開発でも導入しやすく、一方で規約がしっかり整備されているのでスケールしやすく、プロダクトが成長してもすぐに手詰まりになることはないでしょう。
実は海外では衰退フェーズに入っているのだが、日本では相変わらず人気でPHPのフレームワークの中でも最も日本語ドキュメントが充実しているので、初心者の学習やチームでの開発はしやすいのではないでしょうか。公式サイトでも英語と日本語だけが用意されており、日本人のコミュニティが活発であることが伺えます。
プログラミングスクールでもCakePHPがカリキュラムに含まれていることも多く、PHPのフレームワークを初めて触れる時に選択するのは王道でリスクが少ないと思います。
- メディアKindle版
- 作者掌田津耶乃
- 出版・メーカーTuyano-Project
- 発売日2015-11-10
5位 CodeIgnigter (PHP)
- 軽量でハイパフォーマンス
- フレームワーク初学者におすすめ

自分が初めて使ったフレームワークです。当時PHPを独学でかじっていて、フレームワークを使うのが良いらしいことで、まずはCakePHPに触れたところ、その時点の力量ではオーバースペックで困っていた所にCodeIgniterを見つけて、触ってみたら規約の緩さによって上手く制御できた記憶があります。
対象としては当時の自分と同じようにPHPをかじってフレームワークに初めて触れるような人がオススメです。特に周りにサポートしてくれる人がいない状態でCakePHPなどにいきなりぶつかると挫折する可能性があるので、独学の場合はなおオススメです。
とはいえいずれは卒業するもの、という認識があり、CodeIgniterでチーム開発したり、中規模以上のサービスを作るのには無理が出てくる可能性が高いです。「世の中のサービスってこういう構成で出来ているんだな」という実感値を、フレームワークを通じて得るキッカケとしては最適でしょう。
MVCのフレームワークですが、モデルの使用がオプションで、SQLを直に叩いて、結果を配列でぶん回す、みたいなことも可能です。もちろんそれではいずれ辛くなるのは明白ですが、それくらいゴリ押しで開発できるのが特徴です。
使っている実感値としては生のPHPを書いている時とさほど変わらず、エスケープなど自分で0から作るのは面倒な色々な機能をCodeIgniterがサポートしてくれる、といったところでしょうか。
PHP自体がインストールしてファイルを置けばすぐに動いてくれる、というお手軽な所が長所であり、その良さをいかしてくれるという意味ではオススメです。
- メディア大型本
- 作者河合 勝彦
- 出版・メーカー翔泳社
- 発売日2008-06-10
6位 django (Python)
- Pythonのフルスタックフレームワーク
- Pinterest, Instagramでの採用実績

Pythonでフルスタックにおけるデファクトのフレームワーク。海外ではPintrestやInstagramのような巨大サイトで使用されているので採用事例としては申し分ない。国内ではRoRに集中しすぎているせいかあまり関心は強くないが、Gunosyが使用しているようです。(国内の場合はDjangoが、というよりもPythonがWebアプリに使われることが少ないというのが主な原因だと思います)
DjangoはPython自体のコミュニティが活発であり、その中でデフォクトだけあって基本的に必要な機能の大抵は用意してくれているし、開発していて不満を感じることはあまりないでしょう。とはいえRailsほど至れり尽くせりではありません。(そもそも至れり尽くせりなのが良いことかどうかはまた別のお話)
問題視されていたPython3への対応も完了していますし、Djangoがイケテないと感じるところはありません。
今後、機械学習への関心の高まりによって日本でもPythonの人口はどんどん増えるでしょうし、その流れから見ても、Djangoを選んでPythonを得意とするのは時代に適っているかもしれませんね。
- メディア単行本(ソフトカバー)
- 作者露木 誠
- 出版・メーカー技術評論社
- 発売日2009-02-16
7位 Meteor (Node.js)
- 最大のGitHubスター数を誇る
- これまでにない全く新しい開発手法

Node.jsの中だけでなく、おそらく全ての言語を含めたwebフレームワークの中で最も多いgithubのスターを獲得しているフルスタックなフレームワーク。しかし一方で目立った採用実績はなく、当初はそのギャップの理由が分かりませんでした。
注目されている理由としては既存のフレームワークとは全く異なるアプローチによる開発をしており、Meteorが対応できる要件なら高い生産性を実現できるためです。採用実績が少ない要因は、個人的な考えですが、一旦Meteorの枠組みに乗っかってしまうと、Meteorのエコシステムから外れることが許されないためだと考えています。(MongoDBが前提になっていることなども挙げられますが)
Meteorが適している要件としてはSPAのウェブサイトかつ、チャットのようにリアルタイムで値が変動するケースです。通常チャットを実装する場合は、とあるユーザーが書き込みが行ったら、書き込みがあったことをサーバーが通知し、クライアントが受け取ったデータを元に画面を描画する、というようにサーバー・クライアント間に跨って複数の処理を実装する必要がありますが、Meteorの場合はサーバーとクライアントのデータが自動で同期されており、開発者が特別な処理を書かなくとも勝手に最新の値に更新してくれるので、リアルタイム性の高いアプリケーションほどその恩恵を受けることができます。
とはいえ黒魔術的なレールに乗ってしまうと想定外のニーズに対応できない可能性が出てくるので、本番環境での導入には慎重にならざるを得ません。まずは興味本位で先進的な開発を味わってみたいという方にはオススメです。
注目の技術として扱われてからもう5年ほど経過しているが、未だに採用されることがほとんどないので、これからも先進的な技術、として扱われ続けそうな臭いがする。
現在SPAの主流はreact-routerなどに移行しつつあるし、Meteorが出てきた頃とはNodeを取り巻く環境も大分変わってきたので、あえて反主流としてMeteorに乗っかるのはリスクが大きい。
趣味やハッカソンなど使い捨てにできるプロジェクトで使うのなら良いのでは。
- メディアペーパーバック
- 作者Arnaud Weil
- 出版・メーカーLulu.com
- 発売日2016-07-30
8位 Symfony (PHP)
- 大規模サイト向けフレームワーク
- 米Yahoo!でも採用実績あり

PHPの重厚長大なフルスタックフレームワークです。アメリカのYahooのいくつかのサービスでもSymfonyが使用されているなど、大規模なサービス向けのフレームワークだと言われています。
現在最もコミュニティが活発なLaravelはSymfonyのコンポーネントの上に乗っかっており、またどちらも主要なフレームワークであることからよく比較されますが、個人的な印象としてはSymfonyは疎結合が徹底されていて、より重厚であるように感じられます。
重厚であるというのはデメリットではなく、アプリケーションのコードが肥大化しても混乱せずにソースを追っていけることにもつながるので、PHPで中規模・大規模のサービスを作る時に最も適したフレームワークの一つであるのは間違いないでしょう。
- メディアKindle版
- 作者後藤秀宣
- 出版・メーカー技術評論社
- 発売日2015-12-16
9位 Phoenix (Elixir)
- Elixirの本命フレームワーク
- Railsを踏襲した開発スタイル

2015年あたりからエンジニア界隈で急速に注目されたElixirのフルスタックフレームワーク。Elixir自体のコミュニティが活発でない影響もあるだろうが、フレームワーク領域の関心がPhoenixに集中しているので、Elixirを選ぶなら自動的にPhoenixみたいになるかもしれない。
Elixir自体がRuby風と呼ばれるだけあってか(見た目が似てるだけで実際は全然違うんだけれども)、PhoenixもRailsから強い影響を受けている。テストを含めてRailsと開発手法がほとんど同じなのでRails開発者なら習得は苦にならないはず。
最大の特徴はErlangに付随するものであるが、省メモリかつ非常に高速に動くことだ。単純なロジックのウェブサイトならほとんどが1ms以内でレスポンスを返すように、パフォーマンスの恩恵が非常に大きい。またErlangは高い耐障害性を持っていることは知られており、本番環境に導入するリスクは小さいのではないか。
今のところ国内の大規模サービスで導入されたという話は聞かないが、ライブラリや日本語情報が充実していけば、今後有力な選択肢としてあげられる可能性はあると思う。
- メディアKindle版
- 作者Chris McCord
- 出版・メーカーPragmatic Bookshelf
- 発売日2016-05-17
10位 Sinatra (Ruby)
- Rubyの軽量フレームワーク
- 初学者でもすぐに使える

Railsという巨人がいるせいでいまいち影の薄いSinatraだが、初学者や自社のウェブサイトなど大掛かりにやる必要が無いアプリケーションならばSinatraを使った方が良い。にも関わらず無理してRailsが使われているケースが多いように感じる。
例えばRailsは初学者にとっては初期状態のgemすら入れるのに手こずったり、いざアプリケーションを作って公開しようにもAssetのプリコンパイルなどで盛大にハマるポイントがたくさんあるせいで挫折する人が多いのではないか。
Sinatraはそういったハマりポイントがかなり少なく、ルーティングとロジックを一緒にかけたりと直感的に開発ができるので、自分は初学者にはSinatraをオススメしたい。
Rubyのフレームワークとして最も有名かつ使用実績があるのはRailsだが、SinatraはRailsのマイクロ版といった位置づけで、小規模なウェブサイトをサクッと作ることに適している。またRailsなど他の知見をそのまま活かせるので、全く別の技術として再学習する必要が無いのも良い。
11位 Koa (Node.js)
- Nodeの新しい標準フレームワーク候補
- ジェネレータを使った非同期処理

NodeのデファクトであるExpressの開発チームが、新しい思想で開発したフレームワークです。比較的新しいフレームワークですが、既にスター数が1万を超えており、今後ますます利用実績も増えていくでしょう。
もともとNode.jsはノンブロッキングI/Oであるため、外部URLに接続する場合などは処理が完了するのをコールバックで待ち受ける必要があり、それが多重に行なわれると、人間には理解が難しいほどにコールバック地獄になるというデメリットが叫ばれていました。
そこでES6のpromiseによってコールバック地獄から解放されると注目されたのですが、コールバック地獄こそなくなったものの、冗長な書き方をしなければならず、これも開発者フレンドリーではないという問題があります。
Koaはgeneratorを用いることで、yieldの指定だけで非同期の処理を待ち受けられるので、Promiseよりも簡潔に複数の非同期処理を行うことができます。これにより長らく叫ばれていた非同期処理の辛さを解決できるので、今後Node.jsにおいてますますメジャーになる可能性が高く、新しいプロジェクトには積極的に採用しても良いのではないでしょうか。
generatorを使ってもパフォーマンスはほとんど落ちないと言われていまるし、Nodeもバージョンが進んで、harmonyオプションを付けなくてもデフォルトでgeneratorに対応しているので、特に敬遠する必要はないのでは。
強いて言えばExpressのエコシステムが強いので、まだ初学者はExpressを一回はおさえておいたほうが良い、くらいでしょうか。
12位 Play Framework (Scala)
- Scala・Java両対応のフレームワーク
- 静的言語で高い生産性

Scalaのデファクトのフルスタックフレームワークです。Githubのスター数も8000を超えており、コミュニティ規模としても十分でしょう。
Play FrameworkはJavaでもScalaでもどちらでも開発できるのですが、実際に使われるケースとしてはScalaの方が断然多いのではないでしょうか。登場した時期(Javaの時代)からRails風の高速開発をJavaでも、という謳い文句だっただけあって、重厚長大な既存のJavaフレームワークと違い、生産性の高さがウリです。
もちろんいくら生産性が高いと言っても、少人数で短期間で作るプロダクトの場合は、書いたら即反映・実行されるスクリプト言語には敵うはずはなく、型安全のメリットを活かしたプロダクトの場合にのみ言える話ではありますが。
有名な導入事例としてはLinkedInやドワンゴなどがあるので、ある程度安心して使えるのではないでしょうか。
難点としてはScalaが一時、プロダクトが成長した際の第二言語として注目されていたものの、今はそれがgolangに移りつつあるので、Scala自体がメジャーな言語になる見通しが薄れてきていることでしょうか。
- メディア大型本
- 作者掌田 津耶乃
- 出版・メーカー翔泳社
- 発売日2013-12-17
13位 Phalcon (PHP)
- C拡張によりPHPとしては圧倒的なパフォーマンス
- 柔軟なコーディングが可能

一言で言うと爆速フレームワーク。内部がC拡張で出来ているため、他の軽量フレームワークよりも遥かに高いパフォーマンスを実現しています。
公式サイトでも『PhalconはPHPの最速フレームワークです。「重要なのはパフォーマンスである」という指針に基づいて実装されたフレームワーク』と自称しているように、とにかくパフォーマンスを優先するときにオススメです。
一見するとキワモノっぽいフレームワークに見えますが、Githubのスター数も7000を超えていて一定以上の利用者はいるほか、フレームワークの機能自体も他と見劣りするわけでもないので、速度以外の全てを犠牲にする、みたいな極端なものではないです。
Cの拡張で書かれていてパフォーマンスが高い、という特徴は今更強調する必要はないかもしれませんが、phalconを選ぶ時の最大のモチベーションはやはりパフォーマンスでしょう。
Hello Worldを出力するベンチマークでも他のフレームワークを圧倒しており、フルスタック系のフレームワークとの差は数十倍にもなります。
https://github.com/kenjis/php-framework-benchmark
機能的な特徴としてはコンポーネントごとに疎結合となっており、開発者がある程度好きな様に柔軟にコーディングすることができます。またフルスタックで主要な機能は一通り揃っており、むしろオーソドックスなフレームワークという感があります。
14位 hapi (Node.js)
- Expressよりも多機能だが、シンプル
- 自分で構成をカスタマイズ可能

hapiは立ち位置的には軽量とフルスタックの間くらいに位置するフレームワークで、Expressより多機能だけど、MVCのような構成が決められているわけでもありません。
Expressはミニマルであるという思想があり、バージョンが進むごとに周辺機能を別プロジェクトに分離してコアな機能は薄くなっています。その点hapiはフレームワークの中にクッキーやロギングなどアプリケーションに必要な機能が一通り揃っているので、本番で使いたいアプリケーションを作成するときには導入コストを大分下げることができます。(Expressを選ぶとロギングのライブラリすら外部に頼ることになるので、必要な機能を揃えるだけでも結構時間がかかってしまいます)
単にサーバーを立ち上げるだけならExpressとほとんど同じコストで始められる一方、ルーティングなどで細かい設定をオプションで付与できるので、Expressだけでは何をしたら良いか分からない、という方はhapiを使うと良いのではないでしょうか。
- メディアKindle版
- 作者Van Nguyen,Troy Mott,Eran Hammer
- 出版・メーカーBleeding Edge Press
- 発売日2015-08-02
15位 Beego (Golang)
- Go言語のフルスタックフレームワーク
- 中国サイトでの実績豊富

golangのフルスタックフレームワークはBeegoとrevelの2強っぽくてどちらか迷った時にBeegoを導入した。golangはデファクトのフレームワークが定まっていない状態なので、どちらかに明確な優位があるわけではないのだが。
golangは標準のライブラリだけでも大抵の処理は実装できるので、そもそもフルスタックがどうしても必要なのかと言うと実はそうでもない。むしろ初心者ほどあえてガチガチのフルスタックから入って、段々自分でカスタマイズするという路線の方が良いと思っている。(プログラミング初学者がいきなりgoに突っ込みのは危険なので全くオススメしないが)
機能的な特徴としてはrevelは自前のテストが用意されている一方で、BeegoにはORMapperがあるなどそれぞれ欠落しているものがある。ではなぜBeegoの方が良いと判断したのかというと、ドキュメントがしっかり整備されていて学習しやすいと判断したため。長期的に考えるとそもそもフルスタックなのか?という疑問があるので、取っ掛かりやすさを重視した。
16位 Sails (Node.js)
- Node.jsのフルスタックフレームワーク
- Railsに似たプロジェクト構成

Sailsはその名の通りRailsの影響を受けて作られた、Nodeでは珍しいフルスタックのフレームワークです。影が薄い印象を受けますが、何気にスター数も15,000を超えており、Nodeのフレームワーク群の中では3位に位置します。
特徴としてはフルスタックであることから、機能が豊富であること、規約がある程度厳格に作られていることが挙げられます。(他の言語からしたら普通のことかもしれませんが、Nodeではフレームワークでもミドルウェアの機能に留まっていることが多いのです)
またこれはSailsがというより言語自体の特性ですが、他の言語のフルスタックフレームワークよりもパフォーマンスが優れており、例えばベンチマークではRailsの5倍ほど高い結果が出ています。
デメリットとしては国内での目立った採用実績もなく、npmダウンロード数も頭打ちとなりkoaに抜かれていることでしょうか。
結論としてはNodeでフルスタックを導入したい場合に考慮すべきフレームワークでしょう。
17位 Flask (Python)
- Pythonの軽量フレームワーク
- pipさえあればすぐにWeb開発できる

RubyにおけるSinatra的なポジションのマイクロフレームワーク。 Githubスター数はSinatraよりも多いし、フルスタックのdjangoよりも何気に多い。
導入は簡単でpipでインストールして、pythonファイルにルーティングと処理を書くだけですぐにHTTPサーバーが起動する。当然テンプレートを使えばHTMLの出力も簡単。不足したライブラリは別途インストールして追加していけば良いので、Flask自体への学習コストをほとんどかけることなくアプリケーションを作成できる。
日本ではWebアプリケーションといえばPHPかRubyというイメージが強くて、PythonでWebを作るのはマニアックなイメージがどうしても付いて回ると思いますが、Flashを使えば(Pythonさえ入っていれば)ローカルサーバーの起動は即座にできるので、大分心理的なハードルは下がるのではないでしょうか。
RubyにおけるSinatraのように初学者の取っ掛かりとしてもっと使われていいと思います。
- メディアKindle版
- 作者Miguel Grinberg
- 出版・メーカーO'Reilly Media
- 発売日2014-04-28
18位 Echo (Golang)
- Go言語の軽量フレームワーク
- 高いパフォーマンス

Go言語はWebアプリケーションへの採用の歴史が短いせいか、ここ数年でフレームワークが乱立しており、とくに本番環境で使用するとなるとフレームワーク選定がリスクになりがちです。
EchoはGo言語の主要フレームワークの中でも最速の部類で、軽量として採用実績のあるGinよりも高速なのがウリです。(最速と謳うirisというフレームワークはオーナーが色々問題を起こしており、ヤバイ匂いがするのでここで除きます)
機能面は触ってみた感じでは際立ったものはなく、あくまで軽量フレームワークという扱いなのですが、Ginは最近コミット数が落ちてきており、Echoは未だ活発に行われているので、将来性を考ええうとEchoがオススメです。
19位 Kitura (Swift)
- サーバーサイドSwiftの本命
- IBMが開発する軽量フレームワーク

iOS開発でお馴染みのSwiftをサーバーサイド開発に使用する動きが最近活発に行われています。昨年Swiftがオープンソース化されたことが話題となりましたが、その流れでサーバーサイドに使う動きが強かっています。現在フレームワークで有力視されているのはIBMが開発しているKituraです。
Kitura自体は軽量フレームワークでmacでビルド環境が整っていれば導入はすぐに完了します。ルーティングと簡単な文字列を返すだけならば、ものの10行ほどで書けてしまうことが特徴です。
フレームワークが提供している機能はシンプルで、実際にアプリケーションで必要な機能を実装するには外部ライブラリに頼る必要がありますが、サーバーサイドSwift自体の歴史が浅くそれほど充実していないのがネックです。
Kituraではありませんが、カメリオでは既にサーバーサイドSwiftを本番環境に導入しているようで、今後使用事例も増えると思うので、まずは趣味レベルで簡単に導入できるKituraをおすすめします。
20位 Mojolicious (Perl)
- Perlの有力フレームワーク
- 小規模・大規模どちらにも対応

はてなやDeNAなど有名企業でも活躍しているPerlですが、近年はすっかり存在感が薄くなり、初学者でPerlを始める人はあまりいないのではないでしょうか。
Mojoliciousは軽量フレームワークでMojolicious::Liteを使えば数行のコードと1回のコマンドですぐにサーバーを立ち上がることができるので、初学でPerlに興味をもっている人におすすめです。
Liteではファイル一つで動作させることを前提としていますが、もちろんMojoliciousの本体を使って適切にティレクトリ分けをすれば規模の大きなアプリケーションを作ることもできます。規模に応じてアプリケーション構成を変えられるのも特徴です。
またWebSocketにも対応しており、リアルタイムアプリケーションも作成できます。
この記事について
Webアプリケーションフレームワークとは、Webサイトやアプリケーションを作成する際に、枠組みとなる機能を提供するもので、設計や機能実装などの面で開発者の負担を軽減したり、高度な機能の実現を可能にすることを目的としています。
フレームワークといっても軽量でコアな機能のみを提供しているものから、竜頭徹尾フレームワークの規則に従わなければならないものなど、様々な種類のものが存在し、開発者は達成したい目的に応じて適切なフレームワークを選ぶ必要があります。
機能だけでなく、そのフレームワークが将来に渡って開発が継続されるものであるか、バグが存在してもすぐに修正されるものであるか、など開発コミュニティも選定における重要なポイントです。
その他、日本語ドキュメントが存在するかどうか、外部ライブラリは充実しているかどうか、などフレームワーク一つ選ぶのであっても、背景情報を知らなければ適切なフレームワークを選ぶことが難しいことがあります。
この記事は、様々な言語の主要なフレームワークをピックアップし、それぞれどのような機能や背景があるのかをコメント形式でまとめることで、一つの記事で横断的にフレームワークの情報を得ることを狙いとしています。
皆さんがそれぞれの目的に応じて適切なフレームワークを選定し、楽しくより生産的なプログラミングをするために、少しでもお役に立てるのならば幸いです。
特徴としてはテストを含むWebにまつわる一連の開発フローのほとんど全てに対応した機能が備わっており、また「設定より規約」という理念に現れているように、個々のプログラマーがコアな設定に手を付けなくとも、レイヤーの高い機能開発に専念できる構成になっている。
賛否はあるがRubyという言語の性質も備わって、プログラマーが書くべきコード量が他の言語・フレームワークと比べてかなり少なく済み、フレームワークが敷いたレールに乗っているだけで一定のクオリティのプロダクトを高速に作ることができる。
歴史があり、アクティブな開発者も多く抱えているため、ドキュメントも充実しており、Ruby自体が日本発祥の言語ということもあって日本語ドキュメントがかなり充実しているので、初心者でもググったり本を参照すればそれなりに開発できるのも大きい。(個人的には実は否定派なのだが、)実際にプログラミングスクールでは初心者にいきなりRailsを教えるところも多く、「WebプログラミングならまずはRailsで」という空気になりつつある。
アメリカで最も高い給与を得られる技術として知られている。HuluやGithub,Airbnbなど世界的に有名なサービスもRailsが使用されており、日本でもクックパッドや食べログなど数多くの大規模サイトでの導入事例がある。
開発効率や人材確保の観点から、とりわけ新規事業を行うベンチャーで世界中でかなりのシェアを占めており、比較的新しいweb系企業で働きたいのならばRailsをやっておけばかなりチャンスが広がるのは間違いない。(とはいえRailsができるからといってすぐに就職できるわけではないので注意)
シリコンバレーをはじめとしたスタートアップの勃興とともにサーバーサイドのデファクトの一つとして見なされるようになったが、案外その歴史は古く最初のバージョンは2004年だ。かなり長寿のプロジェクトとして現在も開発されているが、未だにメジャーバージョンアップでは大胆が変更が加わるように、プロジェクトからはあまりレガシーさを感じない。
新しい技術を常にキャッチアップできる少数精鋭のチームならばメリットは大きいが、受託開発など多くのプロジェクトを抱え、一つ一つのプロジェクトに労力をあまり注げないような場合はデメリットは大きくなる。とはいえWeb業界は新しい技術にキャッチアップできない人に対する視線は冷たいものがあるので、この業界でバリバリ働きたいのならば、Railsのバージョンを常に追うくらいの熱量は必要かもしれない。