ライブラリとフレームワークの違いがよくわからなかったので調べたことをまとめようと思います。
ライブラリとは
ライブラリは特定の処理をするためのプログラムを集めたもの。
何か処理を行いたいとき、自分で0からプログラムを書かなくても、ライブラリが存在していれば、そのライブラリで代行できる。
フレームワークとは
アプリケーションを作成するときに土台となるプログラムのこと。
アプリケーションを作ると似た処理がいくつか出てくるため、それらの共通処理を書かなくてもいいようにまとめたもの。
要するに骨組み。プログラマはこの骨組みにほしい機能を肉付けしていく。
共通部分
ライブラリもフレームワークも労力を削減し時間を省いてくれる。
ライブラリとフレームワークの違いは?
ライブラリはユーザーコード(ユーザが記述したコード)によって呼び出されます。
つまりユーザの意思で使いたいときに取り出すことができる便利な道具です。そのためライブラリはユーザから指示を受けて動くため、ユーザ自身がルールとなります。
しかしフレームワークはフレームワーク内のルール上で書いたユーザプログラムがフレームワークによって呼び出されます。
フレームワークがアプリのライフサイクルである、初期化から実処理、終了までの流れを管理しており、その要所要所で「なにをするべきか」をユーザプログラムに記述します。
要するにライブラリがユーザの書いたプログラムの歯車なのに対して、フレームワークはユーザーが歯車となりフレームワーク内のルールに沿ってプログラムを書きます。
この逆転プログラム実行の主体が逆転する性質のことを制御の反転(主従の逆転)という。