フレームワークってなに?プログラミングで使う不思議なあいつ

31, 2019-07-07

目次

フレームワークとは楽をするための大きな枠組み

こんにちは、narupoです。

プログラミングをしている皆さん、フレームワークって聞いたことありますか?

プログラミングをしているとたびたび見かけるこの「フレームワーク」という言葉。

いったい何なのか


  • 「プログラミングをしてて聞いたことはあるけど、使ったことは無い……」

  • 「得体がしれないフワフワしたもの。こわい……」

  • 「プログラミング界のドン。目に触れたものをすべて傷付けていく……」


プログラミングをしている人の中には、↑などの印象を抱く人も多いと思います。


フレームワークとは、プログラミングで楽をするための大きな枠組みです。


フレームワークを使うことで、プログラミングが楽になり、大規模なアプリを作れるようになります。


この記事を読めばプログラミングにおけるフレームワークの役割がよくわかります。

「フレームワーク、やだすごい。頼もしいプログラミングのお供……」
「フレームワーク、かっこいい。私のプログラミングにも来て……」

プログラミングをしている皆さんもきっと↑こうなるはずです。

大きなな枠組みって?

空の絵画

そもそも「フレームワークはプログラミングにおける大きな枠組み」というのはどういうことなのか。


みなさんもプログラミングで設計をすると思います。

あーでもない、こーでもないとプログラミングで書いたコードをいじったりしますよね。

そのプログラミングの設計の基礎に「アーキテクチャー」というものがあります。

プログラミングにおけるアーキテクチャーとはプログラムの背骨、土台を定義するものです。


たとえばサーバー/クライアント型のアプリでは、サーバー/クライアントというアーキテクチャーを土台にしてプログラミングします。

ほかにはMVC(エムブイシー)などのプログラミングのための有名なアーキテクチャーもあります。


フレームワークとは、このアーキテクチャーを土台に構成されるプログラミングの便利ツールの集まりなんですね。

つまり、プログラミングにフレームワークを使うことで、プログラムに太い背骨が入り、さらにその周辺の便利ツールもたくさん使えるようになる、ということです。


フレームワークを使う理由

ではなぜ、プログラミングでフレームワークを使うべきなのか。

プログラミングにおけるメリットをひとつずつ見ていきたいと思います。

開発コストをおさえる

砂時計1

プログラミングでフレームワークを使うと、アプリの開発コストをおさえることができます。

超小規模アプリの場合をのぞけば、ほとんどの規模のアプリの開発でフレームワークは、あなたのプログラミングに恵みの雨を降らせるでしょう。


フレームワークには多数のプログラミング用のライブラリが備わっているのが普通です。

そのライブラリをプログラミングで使うことで、開発を効率よく楽に進めることができます。

ひとりでプログラミングをして、SNSを作ることだって可能です。それも現実的な時間の範囲で。


私が1人でDjangoを使いSNSをプログラミングした時は、開発に6ヵ月ほどかかりました。

しかし、何といってもSNSですから、プログラミングにおいてはかなり短い開発期間と言えるでしょう。

ちなみにこのブログもDjango制ですが、プログラミングによる開発期間は4ヵ月ほどです。

もっと簡単なアプリなら1~2ヵ月ほどのプログラミングで作れるでしょう。


それらのアプリをフレームワークなしのプログラミングで作ったらどうなるか。

おそらくプログラミングで、倍以上の時間がかかると思います。

プログラミングの時短! まさにフレームワークさまさまと言えます。

アプリをよりセキュアにする

手の4角形

プログラミングでフレームワークを使うと、アプリをよりセキュアに安全にすることができます。

プログラミングで作ったWebアプリをネットに公開するさいに気を付けなければいけないのがセキュリティです。


ネット上にはたくさんのクラッカー(悪いハッカー)がいます。

クラッカーはあなたのアプリのコメントフォームから悪いコードを流し込んだり、サーバーにあるファイルを奪い取ろうとしたり、プログラミングで悪いプログラムを作って攻撃したりしてきます。


それらに対応して安全なアプリをプログラミングで作るのは、非常にコストがかかります

しかし、フレームワークの用意する仕組みをプログラミングで使えば、それらの機能をユーザーに安全に提供することが出来ます。


フレームワークの開発では世界中の開発者がプログラミングで貢献しています。

そして日夜、新しいバグに対応したりセキュリティホールをプログラミングで埋めています。

そうすることでフレームワークの安全性が高まり、品質の良いアプリをプログラミングで作れるようになります。


ぜひフレームワークの便利さを、自分のプログラミングで体感してみましょう。

再利用できるアプリを作る

プログラミングでフレームワークを使うことで、アプリの再利用性を高めます。

フレームワークはプログラミングのための大きな枠組みですが、その枠組みによってアプリを使いやすくしています。


たとえばDjangoではpipというパッケージマネージャーを使って、プログラミングで作ったDjangoのアプリを簡単にインストールすることができます。

こうすることで、他人がプログラミングで作ったアプリを自分のアプリに取り込めるようになります。

  • 田中「こんなアプリをプログラミングで作ったよ、ボブ」

  • ボブ「ナイスだぜ、田中。すぐにインストールしてみるよ」

↑こんなやり取りが可能になるということですね。


この仕組みによって、プログラミングで作った自分のアプリをネット上に広く公開し、ほかの人の役に立ててもらうことも可能です。

実際、GitHubでは多数のDjangoのアプリが公開されています。
(「django」で検索するとたくさん出てきます)

デメリットは?

悩んでいる男

プログラミングでフレームワークを使うことで何かデメリットはあるのでしょうか?

学習コストがかかる

一般に、フレームワークを使ってプログラミングしようとすると、フレームワーク分の学習コストがかかります。

仕様が複雑なフレームワークほど、プログラミングで使えるようになるには時間がかかります

また、フレームワークもプログラミング界隈では流行り廃りが激しく、せっかく学習してもフレームワークが廃れてしまうことがあります。
(そうなったら別のフレームワークを学習するのが一般的です)

小回りが利かない

フレームワークはでかいので、小回りの利いたプログラミングがしづらいところがあります。

また、小規模のアプリでもプログラミングのコードが多くなりがちです。

もっとも、それらを差し引いて余りあるメリットを得られます。

フレームワークを使ってみる

実際にどんなフレームワークがプログラミング界隈にはあるのか?

プログラミングで使われるフレームワークも流行り廃りがありますが、比較的に最近に使われているフレームワークをピックアップしてみました。

有名なWebフレームワーク

2019年、有名なWebフレームワーク(Webの開発で使われるフレームワーク)には以下のものがあります。

  • Ruby on Rails(ルビー・オン・レイルス)

  • Django(ジャンゴ)

  • Laravel(ララベル)

  • ASP.NET(エーエスピー・ドットネット)

  • Express(エクスプレス)

  • Spring(スプリング)

  • React(リアクト)

  • Vue(ビュー)

ひとつずつ見ていきましょう。

Ruby on Rails(ルビー・オン・レイルス)

一時期、プログラミング界隈で一世をふうびしたRuby製のWebフレームワークです。

特に日本ではRailsで作られたアプリが多数存在していると見ていいでしょう。

それほどプログラミングでたくさん使われていました。

Django(ジャンゴ)

Python製のWebフレームワークです。

「管理サイト」といって、プログラミング不要で自動でデータの編集ページを作ってくれます。

このブログもDjangoで作られています。

プログラミング界隈でPythonの人気が上昇するにしたがって、Djangoの人気も高まっていると見ていいでしょう。

Laravel(ララベル)

PHP製のWebフレームワークです。

比較的に後発のフレームワークで、モダン(現代的)なプログラミングができるフレームワークです。

プログラミングでPHPから離れていく人を引き留めるほどの魅力を持っていると言われています。

ASP.NET(エーエスピー・ドットネット)

マイクロソフトが提供しているWebフレームワークです。

.NETに対応したプログラミング言語(C#, C++など)でアプリを開発可能です。

Express(エクスプレス)

Node.js製のWebフレームワークです。

コンパクトなフレームワークで、比較的に最近のフレームワークです。

Spring(スプリング)

Java製のWebフレームワークです。

React(リアクト)

JavaScript製のWebフレームワークです。

Facebookが開発したフロントエンド用のフレームワークです。

画面を更新しないで動きのあるページをプログラミングで作るときに使われます。

Vue(ビュー)

JavaScript製のWebフレームワークです。

これも画面を更新しないで動きのあるページをプログラミングで作るときに使われます。

Reactに比べて学習が容易です。

これからはDjango, フロントエンド・フレームワークが熱い!

星4つ

いまプログラミングで人気があるフレームワークはどれなのか?

Stack Overflow Developer Survey 2019を見てみると、このようなランキングになっています。

  1. jQuery 48.7%

  2. React.js 31.3%

  3. Angular/Angular.js 30.7%

  4. ASP.NET 26.3%

  5. Express 19.7%

  6. Spring 16.2%

  7. Vue.js 15.2%

  8. Django 13.0%

  9. Flask 12.1%

  10. Laravel 10.5%

  11. Ruby on Rails 8.2%

  12. Drupal 3.5%

フロントエンド・フレームワークではjQuery(ジェイクエリー)が圧倒的ですね。その次にReactです。

しかしjQueryは、jQueryから脱却しようという流れがプログラミング界隈で強いので、これからシェアを減らしていくと見ていいでしょう。

WebフレームワークではDjangoによるプログラミングも人気があるようです。

これは、プログラミング言語のPythonの人気の高まりを受けて、Djangoの人気も高まっているということでしょう。

フレームワークを使えば開発が楽に

プログラミングでフレームワークを使えるようになるとアプリの開発コストがぐっと下がります(超小規模アプリを除く)。

また、セキュリティに関してもフレームワークがよしなにしてくれるので、より安全なプログラミングが可能です。


まさに良いことづくめのフレームワークですが、実際にプログラミングによる開発の現場ではフレームワークを使うことが一般的です。

これを機になにかひとつ、あなたのプログラミングにフレームワークを取り入れてみるのはいかがでしょうか?

以上、narupoでした。

スポンサーリンク

スポンサーリンク

スポンサーリンク

スポンサーリンク