
どーも!某 (@7254bou)です!
プログラミングを始めて理解が難しかったことの一つは「ライブラリ」と「フレームワーク」の違いです。今回はその違いについて解説します。
ライブラリとは
誰かが作ったコードの集まりのことです。自分で1からすべてのコードを書こうと思ったらとても大変です。なので特定の目的のコードは集めておいて、共有されています。ライブラリは英語で図書館ですから、図書館にある色んな本(参考書)を引用して自分の本を書くイメージです。
下記にライブラリの例をプログラミング言語ごとに記載していますので、自分が使ってみたい言語がある場合は確認してみてください。
Numpy – 計算関連のライブラリ
Pandas – データ解析のためのライブラリ
sys – OSの機能を使うためのライブラリ
React – UI (見た目)を作るためのライブラリ
jQuery – JavaScriptを簡単に記述する(主にhtmlとCSS)ためのライブラリ
STL – 標準ライブラリ
OpenCV – 画像処理用ライブラリ
OpenGL – コンピュータグラフィクス用ライブラリ
例を見て分かる通り、それぞれのライブラリに目的があることが分かると思います。
フレームワークとは
ソフトウェアフレームワーク(英: software framework)とは、プログラミングにおいて、アプリケーションソフトウェア等の実装に必要となる一般的な機能や定型コードを、ライブラリとしてあらかじめ用意したものである。
Wikipedia – ソフトウェアフレームワーク
すなわち、フレームワークはライブラリの一種です。フレームワークも同じように、誰かが作ったコードの集まりです。ただその中でも「何かを作る」ためのコードの集まりがフレームワークになります。多くの場合作るものはアプリケーションになるので、フレームワークは基本的にアプリを作るためのコードの集まりと理解すればいいと思います。
フレームワークは英語で枠組みという意味なので、何か特定のプログラムなどを作るための枠組みだと言えます。WEBアプリケーションを作るような場合には、開発用に必要なサーバーが使えるコードがあったりなど、色んなシステムがフレームワークに含まれていたりします。
ライブラリとフレームワークの違い
厳密に言えば、「何かを作る」ためのコードの集まりが必ずしもフレームワークかと言えばそうではありません。例えばUIを作るためのライブラリであるReactは開発元であるFacebookからフレームワークとは呼ばれていません。しかしフレームワークは必ず「何かを作る」ためのコードの集まりになります。
あくまで、フレームワークはライブラリの一種と考えておけば分かりやすいと思います。何かを作るためのライブラリがフレームワークです。