プログラミング学習を始めた頃、フレームワーク、ライブラリというのがいまいち想像できませんでした。
「フレームワークとは」と調べた結果も開発が楽になる枠組みとか書かれていて、開発したことないと「で、結局それってなんなの?何がどう楽になるの?」状態でした。
この記事は、プログラミング言語を学び始めたときのそんな自分に説明しようと思います。
フレームワークとは
フレームワークとはキッチンです。
シンク、コンロ、調理台?と料理するのに必要な機能がそろっています。
どこで野菜を洗うか、切るか、焼くか、が簡単に分かり、誰が利用しても概ね同じ使い方になります。
何もない荒野で野菜だけ与えられて料理しろと言われたら、石積んでコンロ作って水汲みに行って・・・料理ができないわけじゃないけど、大変だし、完成度もばらつきが生じますよね。
水がなかったから野菜の泥も入っちゃったよ!とかね。
ライブラリとは
ライブラリはパンケーキミックスです。
パンケーキ作ろうとなったら、小麦粉と卵と牛乳と・・・って1つずつ材料揃えても完成はするけど、ホットケーキミックス使用したらめちゃ早いし楽だし、完成度も高くなります。
全然膨らまなかった!とかなりにくい。
開発で使うフレームワークとライブラリとは
「今から、Qiitaというメディアをあなたの知っている言語で作ってください。」
って言われて真っ黒のテキストエディタだけ提供されたら、プログラミング言語しか知らない状態でどうするでしょうか。
見た目を作るページを作成して、使用する画像のフォルダを作成して、データベースにデータをもらいに行くファイルを作成して、ロジックも書いて・・・となると思うと相当な労力です。
(そもそも、何を書き始めたらページができて、ページとページを繋ぐにはどうするのかとか調べるのも膨大でしょう)
フレームワークを使うと、ある程度必要なファイルが入ったアプリの元が立ち上がります。
どのファイルに見た目部分を作って、こう書けばこのデータを他で利用できて、という風に一定のルールに沿って簡単にアプリ作成ができるというわけです。
純粋に言語だけでコードを書いたらコード量が膨大になるでしょう。
それを簡単に、簡潔にしてくれるのがライブラリです。
テスト用のデータを勝手に作ってくれるとか、ユーザー認証がemailとpasswordの登録でできる形にすでになっているとか、本当に便利です。
まとめ
フレームワークとライブラリがない開発なんで考えられません。
昔の人はすごい、フレームワークとかライブラリ作った人もすごい!
このおかげで、白紙を渡されて文字だけで成果物作れよということがなくなったわけですね。