ライブラリとフレームワークの違いって?初心者にもわかりやすく解説

公開日:
目次

どーも!某 (@7254bou)です!

プログラミングを始めて理解が難しかったことの一つは「ライブラリ」と「フレームワーク」の違いです。今回はその違いについて解説します。

ライブラリとは

誰かが作ったコードの集まりのことです。自分で1からすべてのコードを書こうと思ったらとても大変です。なので特定の目的のコードは集めておいて、共有されています。ライブラリは英語で図書館ですから、図書館にある色んな本(参考書)を引用して自分の本を書くイメージです。

下記にライブラリの例をプログラミング言語ごとに記載していますので、自分が使ってみたい言語がある場合は確認してみてください。

Python

ライブラリ 説明
Numpy 計算関連のライブラリ
Pandas データ解析のためのライブラリ
sys OSの機能を使うためのライブラリ

JavaScript

ライブラリ 説明
React UI (見た目)を作るためのライブラリ
jQuery JavaScriptを簡単に記述する(主にhtmlとCSS)ためのライブラリ

C++

ライブラリ 説明
STL 標準ライブラリ
OpenCV 画像処理用ライブラリ
OpenGL コンピュータグラフィクス用ライブラリ

例を見て分かる通り、それぞれのライブラリに目的があることが分かると思います。

フレームワークとは

ソフトウェアフレームワーク(英: software framework)とは、プログラミングにおいて、アプリケーションソフトウェア等の実装に必要となる一般的な機能や定型コードを、ライブラリとしてあらかじめ用意したものである。

Wikipedia - ソフトウェアフレームワーク

すなわち、フレームワークはライブラリの一種です。フレームワークも同じように、誰かが作ったコードの集まりです。ただその中でも「何かを作る」ためのコードの集まりがフレームワークになります。多くの場合作るものはアプリケーションになるので、フレームワークは基本的にアプリを作るためのコードの集まりと理解すればいいと思います。

フレームワークは英語で枠組みという意味なので、何か特定のプログラムなどを作るための枠組みだと言えます。WEBアプリケーションを作るような場合には、開発用に必要なサーバーが使えるコードがあったりなど、色んなシステムがフレームワークに含まれていたりします。

ライブラリとフレームワークの違い

厳密に言えば、「何かを作る」ためのコードの集まりが必ずしもフレームワークかと言えばそうではありません。例えばUIを作るためのライブラリであるReactは開発元であるFacebookからフレームワークとは呼ばれていません。しかしフレームワークは必ず「何かを作る」ためのコードの集まりになります。

あくまで、フレームワークはライブラリの一種と考えておけば分かりやすいと思います。何かを作るためのライブラリがフレームワークです。