Web開発全般に足を踏み入れると、まず必ず聞くであろう『ライブラリ』と『フレームワーク』
それの違いが全く分からず、きっとGoogle検索のキーワードの履歴はこれで埋め尽くされてるでしょう。
私なりに難しい事は抜きにして分かりやすく伝えていきます。
まず調べるとよく出るキーワードは『部品』と『枠組み』
部品=ライブラリ
枠組=フレームワーク
まぁこれで分かれば良いんですがそうもいきませんよね。
ですが、絶対にこの説明で合ってますという定義はありません。
貴方がどこで学ぶかにより変わってきます。
つまり人により説明の仕方や考え方の意見は違います。
ライブラリ
貴方が作ったアプリケーションの1つ1つの機能(部品)をまとめ
それを呼び出し使用する為に提供されているのがライブラリとなります。
元々機能が用意されてるのを使用するのではなく
貴方がアプリケーションの機能を作り上げていきます
なので開発の際は貴方次第で全てが委ねられます。
アプリケーション開発の全権は貴方にあるのです。
ログイン機能を設置しなかろうが、それは貴方の自由ですし、不具合がありそれを直すかどうか決めるのは貴方次第となります。
自作ライブラリと言いますが、深追いはやめましょう
今は混乱するだけです。
ゼロから作っていくので、始めるまでが大変ですね
ですが一度始めてしまえば、必要な所だけの機能を取り出し読み込んで、別のライブラリへ変更も容易になります。
つまり自由度が高い、開発となります。
ですが機能を作るのに時間が掛かりすぎてしまうのが難点です。
フレームワーク
先程は機能を貴方が作ると言いましたね。
それの逆です、テンプレートを使用し開発していきます。
テンプレート=枠組みです
ほとんどのめんどくさい機能(部品)の実装が用意されています。
わざわざゼロから貴方が作る必要はありません。
なので効率の良い開発ができます
しかし開発者はフレームワークそれぞれが決めてるルールに沿って守りながら使用していかなければいけません。
もしルールを把握しきれずにお構いなしに機能(部品)を入れ替えたり追加すると、後々厄介な事になりかねません。
なので開発の自由度はライブラリに比べて低いと言えます。
1フレーズでまとめましょう
ライブラリ
- 機能を作り上げていくための枠組みとなる再利用可能です。
- 機能のテンプレートを提供する枠組みとなる効率良いが開発時には自由がない。
ざっくりとした説明ですみません。
私なりの説明となります
もし深く学びたいのであれば、また記事として取り上げようかと思います。
せっかくなんでJavaScriiptのオススメ紹介しときます。