この記事で解決できる悩み
- プログラミングのフレームワークとは?
- 自分にあったフレームワークがあれば知りたい!
- さまざまなフレームワークが知りたい!
編集部: 荒木
編集部の荒木です!上記のような悩みを解決できる記事をご用意しました。
これから紹介する「プログラミング言語ごとのフレームワーク17種類」を理解すれば、一からプログラミングをしている方は、効率よく作業ができるようになりますよ。
なぜならテンプレートにはめ込むだけで、Webサイトやアプリに実装できるからです。
この記事では、実際にエンジニアの菅野さんに監修いただきながら、プログラミングのフレームワークについてまとめています!
プログラミングで活躍!フレームワークの使い方
そもそもフレームワークとは、簡単にシステムを開発するためのテンプレートのことです。
プログラム言語に種類があるように、フレームワークにも複数の種類があります。
たとえばRubyという言語であれば、「Ruby on Rails」や「Sinatra」といったものが作られています。
どんなものなのかについては、のちほど詳しく解説しますね!
プログラミングでフレームワークを使うメリット3つ
プログラミングでフレームワークを使うメリット3つは把握しておきましょうね。
メリットを理解すれば、フレームワークを知らなかった人や使っていなかった人も使う意味が理解できますよ!
フレームワークのメリット3つ
- 開発にかかる時間を短縮できる
- 作業効率を改善できる
- バグやエラーのリスクを下げられる
1. 開発にかかる時間を短縮できる
1つ目のメリットは、開発にかかる時間を短縮できることです。
なぜならフレームワークを使えば、一からプログラムを組む必要がなくなるからです。
たとえば、広く使われているオーソドックスな型の制作物を完成させるなら、フレームワークだけで短時間で制作できちゃうんですよね。
そのため仕事などで完成を急いでいる場合には、役立ちますよ!
2. 作業効率を改善できる
メリット2つ目は、作業効率を改善できることです。
理由はフレームワークを使うことで、コードの書き方を統一できるからです。
たとえば、フレームワークを使って書き方を統一すれば、構造が理解しやすくなり、複数人でも作業効率は下がりませんよね。
そのため作業効率を改善したい場合にも、フレームワークはオススメですよ!
3. バグやエラーのリスクを下げられる
3つ目のメリットは、バグやエラーのリスクを下げられることです。
なぜなら自分でコードを打つことが減るからです。
たとえば一からWebサイトを作るよりも、あらかじめデザインが完成したものに文章を打ち込むだけの方が、エラーやバグの起きるリスクが低くなります。
バグやエラーの発生を抑えるためにも、フレームワークはオススメですよ!
プログラミングでフレームワークを使うデメリット2つ
次にフレームワークのデメリット2つについても紹介します。
フレームワークは簡単に制作物を完成させられます。
ただしデメリットもあるので、あらかじめ確認しておきましょうね!
フレームワークのデメリット2つ
- フレームワークを使うための知識が必要
- プログラミングスキルが身につきにくい
1. フレームワークを使うための知識が必要
1つ目のデメリットは、フレームワークを使うためにも知識がいることです。
たとえば、いいパソコンを買っても使い方や機能の意味を理解していないと、フル活用はできませんよね。
フレームワークも同様で、構造を理解していないと、使いこなせないのです。
フレームワークを使うためにも、使用する言語の基礎知識は、身につけておきましょうね!
2. プログラミングスキルが身につきにくい
デメリット2つ目は、使い方を間違えるとプログラミングスキルが身につかないことです。
理由はプログラミング初心者が使った場合、フレームワークばかりに頼ってしまうからです。
たとえば、外国人と英語で話す時、どちらがより英語をマスターできそうですか?
マスターできるのはどっち?
- 翻訳アプリに頼りっぱなしの人
- 地道に勉強しながら英語を話している人
圧倒的に後者の方が身につきますよね?
そのためフレームワークも同様に、初心者の方は頼りすぎないように注意しましょうね。
プログラミング言語ごとに厳選!フレームワーク17種
ではプログラミング言語ごとのフレームワーク17種についてそれぞれ紹介します。
フレームワークを使いこなすためにも、あらかじめ特徴を知っておきましょうね!
フレームワークを紹介する言語
- Ruby
- PHP
- Java
- CSS
- JavaScript
- Python
Rubyのフレームワーク3つ
はじめにRubyのフレームワーク3つについて紹介しますね。
Rubyのフレームワークを理解しておけば、手軽にアプリ開発またはシステム開発も可能になりますよ!
Rubyのフレームワーク3つ
- Ruby on Rails
- Sinatra
- Padrino
Ruby on Rails
Ruby on Railsとは、Webアプリケーションのフレームワークです。
Rubyでアプリまたはシステム開発をする際などに、使用する場合が多いです。
またRuby on Railsは、大きな2つの理念もあります。
Ruby on Railsの理念
Don’t Repeat Yourself(DRY)
→同じようなコードを何度も書かない
Convention Over Configuration(COC)
→設定より規約を優先する
Sinatra
Sinatraは、オープンソース(WordPressなど)※のWebアプリケーションのフレームワークです。
もっとも少ないコードでWebアプリなどの開発ができます。
ただし大勢で一つの制作物を完成させる場合には向きません。
あくまで、個人で作る際や遊びでフレームワークを作りたいときにオススメですよ!
※オープンソースとは、ソースコード(プログラミング言語の文字列)を無償で公開して、誰でも自由に改良できるようにしたソフトウェアのこと
Padrino
PadrinoもSinatraと同様に、オープンソース(WordPressなど)のWebアプリケーションのフレームワークです。
そして先ほど紹介したSinatraをベースに作成されています。
またSinatraにはなかった機能群があり、Ruby on Railsよりは少ないコードなのが特徴です。
軽量なフレームワークで開発したいと考えているなら、Padrinoの導入を推奨しますよ!
PHPのフレームワーク3つ
次にPHPのフレームワークについて紹介しますね。
PHPのフレームワーク3つを把握しておけば、WordPressのカスタマイズにも活用可能ですよ!
PHPのフレームワーク3つ
- Laravel
- CakePHP
- FuelPHP
Laravel
Laravelは、2011年に登場したフレームワークです。
Laravelは初心者でも扱いやすい点から、現在もPHPの中ではエンジニアにも注目される代表的なフレームワークですよ!
またLaravelの理念を言い換えると、以下のようになります。
Laravelの理念
Love beautiful code? We do too
→美しいコードで物を作りたい人のためのフレームワーク
上記の理念から、人が読みやすいコードで構築できるフレームワークなので、複数人で作業する場合には最適ですよ!
CakePHP
CakePHPは、オープンソースのフレームワークです。
CakePHPを使えば、サーバー設定や動作設定の整備がほぼ必要なく、導入しやすいメリットがありますよ!
またCakePHPの日本語対応の学習サイトもあるため、フレームワークを使ったことがない方でも勉強しやすいです。
そんなCakePHPの理念は、以下のようになります。
CakePHPの理念
ケーキを焼くように簡単に開発できる
Webアプリの動作を手軽な方法で良くしたいと思っている方には、オススメのフレームワークですよ!
FuelPHP
FuelPHPは、2010年に開発されたフレームワークです。
他のPHPのフレームワークのよいところをまとめて作られており、PHPのフレームワークの中でも使いやすいものといえます。
またFuelPHPを使用する際には、どんなフレームワークの利点が吸収されているのか確認しましょうね!
あらかじめ利点を把握しておけば、その都度対処できますよ。
FuelPHPのよいところを言うと、以下のようになります。
FuelPHPのよいところ
- Symfony:部品の再利用性の高さ
- CakePHP:サーバ設定や動作整備がほぼ必要ない
- CodeIgniter:処理速度が速い
上記で紹介したPHPのフレームワーク2つよりは、取り入れやすいですよ!
Javaのフレームワーク3つ
次にJavaのフレームワーク3つを紹介します。
Javaのフレームワークは、スマホアプリの開発をする際などに役立てられますよ!
Javaのフレームワーク3つ
- Java Server Faces (JSF)
- Spring Framework
- Play Framework
Java Server Faces(JSF)
Java Server Faces (JSF)は、JavaベースのWebアプリケーションフレームワークです。
Java Server Faces (JSF)を使えば、お問い合わせフォームなど、ユーザーが入力する箇所を手軽に作ることが可能ですよ!
またMVCモデル(アプリケーション設定の整理をするための概念)を採用しています。
アプリ制作は何も考えずにプログラミングすると、コードが膨大になってしまい、バグが起こりやすくなってしまいます。
そこでMVCモデルの概念を使うことで、余計なコードの記述を避けられますよ!
Spring Framework
Spring Frameworkは、Javaでの開発に利用されるケースの多いフレームワークです。
AOP※1とDI※2の概念で構築されており、メンテナンスや変更がやりやすいです。
そのためSpring Frameworkを使うことで、Webアプリなどのメンテナンスや設定のやりやすさも変わってきますよ!
※1:AOPとは、システム内で行われる共通処理を集約するプログラミング手法。
※2:DIとは、未完成のクラスにオブジェクトを注入し、クラスの依存関係が解消させる。(動作テストが行えるようになる)
Play Framework
Play Frameworkは、「Java」や「Scala」を使って作られたフレームワークです。
CPUやメモリの使用量が少なく軽量がゆえに、作業効率もよいので生産性が高いです。
開発やメンテナンスのしやすさにも長けており、世界でも評価されていますよ!
作業効率を上げたい方やJavaエンジニアの方であれば、ぜひPlay Frameworkの導入も検討してみてくださいね。
CSSのフレームワーク3つ
次にCSSのフレームワーク3つについて紹介しますね。
CSSのフレームワークを使えれば、Webサイト作成時の作業スピードも向上しますよ!
CSSのフレームワーク3つ
- Bootstrap
- UIkit
- Foundation
Bootstrap
Bootstrapは、エンジニアから「Webデザインフレームワーク」と呼ばれ、動的な調整のためにCSSとJavaScriptで構成されています。
Twitter社内で作られたもので、Twitterのようなデザインを簡単に作れるフレームワークですよ!
またBootstrapは、CSS3のメディアクエリも使用しており、スマホのレイアウトも簡単に変更できます。
CSSエンジニアの方やデザインを作りたい方は、Bootstrapの導入も検討してみてくださいね!
UIkit
UIkitは、軽量かつ綺麗なデザインのWebサイトを制作したい方に人気のフレームワークです。
UIkitはスマホなどのレスポンシブにも対応しており、簡単にフォームなども作成できます。
また動的なプログラムを施す際に使う、JQueryといったプラグインを導入しても、処理速度が遅くならないメリットもあるのです。
そのためWebサイトを綺麗なデザインに仕上げたい方は、UIkitが最適ですよ!
Foundation
Foundationは、Bootstrapと同じくCSSフレームワークの中でも人気が高いです。
カスタマイズに優れており、フレームワークを使いつつ、こだわる箇所は自分でプログラミングしたい方に最適なフレームワークです。
ただしCSSを網羅している人で「書いた方がよい」と感じた方は、パフォーマンス向上のためにも自分で書くのがオススメですよ!
JavaScriptのフレームワーク3つ
次にJavaScriptのフレームワークについてそれぞれ紹介しますね。
JavaScriptのフレームワークは、Webサイトへ動きのある機能を手軽に追加可能ですよ!
JavaScriptのフレームワーク3つ
- AngularJS
- React
- Vue.js
AngularJS
AngularJSは、JavaScriptで作られたWebフレームワークです。
Googleと個人や企業のコミュニティーによって開発されており、見た目の動きを綺麗に作るために使われる場合が多いです。
またサーバーと連携する機能もあり、Webアプリの開発にも使われています。
見た目の動きをこだわりたい方は、AngularJSの導入を検討してみてくださいね!
React
Reactは、Facebookが中心となって開発したフレームワークです。
同じプログラミングで「iOS」と「Android」の両方を動かすことが可能で、スマホアプリの開発には最適なフレームワークです。
またレンダリング(Webページを描画する)も高速なので、表示の切り替えが素早く、アプリのパフォーマンスもよくなります。
そのためスマホアプリの開発をしたい方は、Reactを使って効率化アップを目指すのもオススメですよ!
Vue.js
Vue.jsは、AngularJSよりも後に作られたフレームワークです。
そのため、他のフレームワークの長所を追加して組み込んだフレームワークとなっています。
またAngularJSよりも自由度が高く、自分でカスタマイズしたい方には向いていますよ。
フレームワークにオリジナルのプログラムを組み込みたいと思っている方には、最適ですね!
Pythonのフレームワーク2つ
次にPythonのフレームワーク2つについて紹介します。
Pythonのフレームワークを把握しておけば、今後需要の出てくるAI開発にも役立てられますよ!
Pythonのフレームワーク2つ
- Flask
- Django
Flask
Flaskは、小規模なWebアプリケーションの制作に適したフレームワークです。
マイクロフレームワーク(軽量化させるフレームワークの延長戦のもの)と呼ばれる標準で提供している機能が、最小限になったものです。
そのためデータを軽量化させる機能が集約されています。
データを軽量化したいと考えている方や小規模なWebアプリ制作したい方には、Flaskのフレームワークが向いていますよ!
Django
Djangoは、InstagramやPinterestによく活用されています。
高度な処理速度で、作っているWebアプリの処理速度をあげたい方には、最適なフレームワークですね。
また「ユーザー認証」「管理画面」「サイト案内」「RSSフィード」といった汎用性のある機能の追加にも最適ですよ。
実用性を意識している方には、Djangoはオススメです!
フレームワークを選ぶ際のポイント2つ
ではフレームワークを選ぶ際のポイント2つについてそれぞれ紹介します。
言語や制作物によって使用するフレームワークが異なるため、選び方はあらかじめ把握しておきましょうね!
選ぶ際のポイント2つ
- 最適なフレームワークか
- 人気のあるフレームワークであるか
1. 最適なフレームワークか
フレームワークを選ぶときは、最適なフレームワークかどうかよく考えましょう。
なぜならフレームワークは種類が豊富だからです。
たとえば以下のような視点が重要となりますよ。
意識すべき視点2つ
- 汎用性
- 機能性
ただし、フレームワークによって読み込みが遅くなっても意味がないですよね。
迷った場合は、必要な機能と汎用性、処理速度のバランスをみて選びましょうね!
2. 人気のあるフレームワークであるか
フレームワークを選ぶときは、人気のあるフレームワークを選ぶとよいでしょう。
理由は、複数人で手を加える場合、マイナーなフレームワークだと対応可能なエンジニアが限られてくるからです。
そのためフレームワークはオーソドックスなものを使うようにしましょうね。
以下フレームワークなら、認知度は高めですよ!
メジャーなフレームワーク
- Ruby:Ruby on Rails
- PHP:CakePHP
- CSS:Bootstrap
- Java:Spring Framework
- JavaScript:React
- Python:Django
フレームワークが学べるプログラミングスクール2選
はじめて使う方のために、フレームワークが学べるプログラミングスクール2選についても紹介します。
フレームワークの使い方を把握して、状況に応じて使い分けられるようになりましょうね!
オススメのスクール2選
- フレームワークを言語とセットで学べるTechAcademy
- フレームワークをマンツーマンで学ぶならCodeCamp
フレームワークを言語とセットで学べるTechAcademy
TechAcademyは、フレームワークを言語とセットで学びたい方にオススメなスクールです。
カリキュラム内で、言語と一緒にフレームワークの使い方を習得できれば、すぐにフレームワークを使って制作物を仕上げられます。
またオンライン完結での受講なので、自分の好きな場所で受講していただくことも可能。
そのため、地方に住んでいる方でも安心してプログラミングを学習できますよ!
フレームワークをマンツーマンで学ぶならCodeCamp
CodeCampは、フレームワークをマンツーマンで学びたい方にオススメなスクールです。
プレミアムプラスというプランであれば、CodeCampで学べる全てのプログラム言語とフレームワークがマンツーマンで学べます!
そのため一人でフレームワークの使い方を理解できるか不安な方には、オススメですよ!
受講時間も7:00-23:00と長く、日中仕事が忙しくて学習できない方にも最適ですね。
【注意点】フレームワークの使い方には気をつけよう
フレームワークの使い方には、気をつけましょう。
なぜならフレームワークを使いすぎるとデータが重くなり、パフォーマンスが悪くなってしまう可能性があるからです。
たとえば、大まかなところはフレームワークを使って、細かな機能は自身で追加するといった使い方がオススメです。
フレームワークを使う際は、どれもこれも使うのではなく、必要最低限のものを選んで使うようにしましょうね。
プログラミングはフレームワークで時間を短縮させよう!
上記で紹介した『プログラミング言語ごとのフレームワーク17種類』を理解していただくと、今後はフレームワークを使って効率的に制作物を完成させられます。
そして生産性を高められるようになります。
最後にもう一度内容を確認しましょう。
言語ごとのフレームワーク17種類
- Ruby
→Ruby on Rails・Sinatra・Padrino - PHP
→Laravel・CakePHP・FuelPHP - Java
→Java Server Faces(JSF)・Spring Framework・Play Framework - CSS
→Bootstrap・UIkit・Foundation - JavaScript
→AngularJS・React・Vue.js - Python
→Flask・Django
オススメのスクール2選
- フレームワークを言語とセットで学べるTechAcademy
- フレームワークをマンツーマンで学ぶならCodeCamp
プログラミングは構造を理解できる程度のスキルを身につけたら、フレームワークを使うことをオススメします。
構造さえ理解していれば、もし問題が起きても対処することは可能です。
ただしプログラミングの習得段階の方は、スキルは必ず身につけておきましょうね!