プログラムを開発する際に利用するライブラリとフレームワークってあるよな。この違いがわかっているか。この記事ではライブラリとフレームワークがどう違うか、ReactやjQueryといった実際のプログラミング言語のライブラリやフレームワークを挙げながら、プログラマでもあるライターのwoinaryと一緒に解説していきます。

ライター/woinary

某社で社内向け業務システムの開発、運用を30年近くやっていたシステム屋さん。現在はフリーランス。ガジェットやゲーム、ラノベが大好きなおっさんです。

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

image by iStockphoto

プログラムを開発する際に利用するのがライブラリやフレームワーク。では、これらは何が違うのでしょう。ライブラリは日本語にすると「図書館」です。図書館というからには本がたくさんありそう。一方、フレームワークは「骨組み」になります。一体何の骨組みなのでしょう。ここからまずは見ていきます。

ライブラリ:便利な機能を集めたもの

ライブラリは図書館と紹介しましたが、どのようなところでしょう。探しやすいように分類ごとに本をまとめてあり、借りた本を読むことができます。プログラムの開発でよく使うものや便利なものをまとめておいて、簡単に使える仕組みがライブラリです。

科学計算用のライブラリやAIのライブラリというものが公開されています。それを使うことで、0からプログラムを書かなくても目的のプログラムを楽に作ることができるのがライブラリです。ライブラリは自分のプログラムで使う部品を借りてきて自由に使えるものになります。

フレームワーク:アプリの基礎や土台

フレームワークもライブラリと似ています。フレームワークを使うことでプログラム開発が楽になる、という部分は同じです。大きな違いはその名の通りフレームワークはアプリケーションの「骨組み」ということ。建物の基礎や土台に似ています。

例えば、Webアプリを作るためのフレームワークのReact。実はすでにWebアプリとして動く骨組みが用意されているため、何もプログラムを書かなくても最低限のWebアプリとして動くのです。ここに実際に作りたい内容を肉付けしていくことでアプリケーションを作っていくのがフレームワーク(骨組み)。ライブラリと逆に、自分のやりたい内容を部品としてフレームワークに組み込むことでアプリケーションが出来上がります。

プログラムはモジュールでできている

image by iStockphoto

プログラムは1つの大きな塊ではなく、いくつかの小さな塊に分けて開発します。その1つ1つの塊が「モジュール」です。このモジュールのことをプログラミング言語によって関数やサブルーチン、クラス、モジュールと様々な名前で呼んでいますが、この記事ではまとめて「モジュール」と呼ぶことにします。プログラムは1つ以上のモジュールの集まりです

\次のページで「モジュールはソフトウェアの部品」を解説!/

モジュールはソフトウェアの部品

モジュールはプログラムを作るための「ソフトウェア部品」とも呼ばれています。最低1つはモジュールが必要です。多くのプログラミング言語では「ここからプログラムが始まる」というモジュールを「メイン・モジュール」と呼びます。プログラミング言語は英語で書くことが多いので「main」という名前が多いです。

ただし、プログラミング言語によってはメイン・モジュールがないことも。そのような言語ではプログラムの先頭から順次実行します。なお、メイン・モジュールがない言語でも、わかりやすくするために「main」モジュールを書くことは可能です。メインあり言語ではmainを勝手に呼び出しますが、メインなし言語では自分で呼び出す必要があります。

メイン・モジュールがあるプログラミング言語の例
・C
・C++
・Java

メイン・モジュールがないプログラミング言語の例
・Python
・JavaScript
・Ruby

ライブラリはモジュールの集合体

モジュールにはよく使うものがあります。それを毎回、最初からつくったのでは面倒です。そのため、ある目的に沿ったモジュールを集めたものを自分で作成することがあります。また、それを世界に公開して誰でも使えるようになれば便利ですよね。その仕組みがライブラリなのです。

モジュールの集合体に名前をつけて公開することで、最初から自分で作る必要がなくなります。また、多くの人利用して不具合の情報をフィードバックすることで、品質が上がるメリットも。そのため、様々なプログラミング言語で多くのライブラリが作成されて、公開されているのです。

\次のページで「フレームワークはアプリの骨組み」を解説!/

フレームワークはアプリの骨組み

ライブラリを使うことでプログラム作成が楽になりました。ただ、便利な部品(モジュール)を呼び出すことはできても、呼び出す側のメイン・モジュールは自分で書く必要があります。そこも楽ができると嬉しいですよね。そのためアプリケーションの種類毎に骨組みを作っておき、必要なものを肉付けすることでアプリケーションを楽に作ることができるようにしたものが「フレームワーク」です。

例えばWebアプリはどれも同じような構造になることが多くなります。そのため、あらかじめWebアプリの骨組みを作って提供する「Webアプリ・フレームワーク」が数多く登場しました。現在ではそのようなフレームワークからアプリケーションを作ることが多くなっています

実際のライブラリとフレームワークを比べてみよう!

image by iStockphoto

ここまでライブラリとフレームワークを見てきました。いくつかのプログラミング言語でのライブラリとフレームワークの違いを実例を挙げてみていきます。

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

Pythonは最近とても人気があります。主な利用分野としてAIによる機械学習、データ解析、簡単な操作の自動化がありますが、最近はWebアプリでも活躍中。そんなPythonにはpandasやStatsModels、NumPy、SciPyといったデータ解析のためのライブラリが豊富です。これらを使うことで自分でデータ解析のためにプログラムを書く必要がなくなります。

フレームワークとしては「Django(ジャンゴ)」が有名です。Webアプリ用のフレームワークで、ユーザ認証やサイトマップといった基本的な機能が用意されているので、アプリの中身を作ることに注力できます。

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

JavaScriptはブラウザに内蔵されていますが、最近はWebアプリの世界で広く使われています。古くからある言語なのでライブラリも多数。その中でも有名なのが「jQuery」です。jQueryには様々な機能が用意されており、JavaScriptで10行程度のプログラムを2行程度になります。また、ブラウザごとの違いを意識しなくてもjQueryがうまく処理するので簡単です。

フレームワークはWebアプリ用のものがいくつかありますがReactが有名。Facebookのメタ社が開発、公開しているので多くの利用者がいます。また、モバイルアプリの開発に使う「React Native」というフレームワークも公開されました。こちらもアプリの骨組みができているので、実現したい中身を肉付けしてアプリを完成させます。

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

Javaは会社で使うような大規模なアプリケーションの開発で人気のプログラミング言語。歴史も長く、様々なライブラリが提供されています。また、Java公式のライブラリが多数提供されているのも特徴です。例えばGUIアプリを作るのに便利なのがSwing。標準なのでわざわざ入手する必要がありません。ボタンやリストボックスといった部品が用意されているので、簡単にGUIアプリを作ることが可能です。

フレームワークとしてはWebアプリに関するものが多く、StrutsやSpringといったものがあります。一番有名なのがJava Enterprise Edition(Java EE)。多くの企業で大規模なシステム開発に使われるものです。

\次のページで「ライブラリは便利な部品を集めた図書館、フレームワークはアプリの骨組み」を解説!/

ライブラリは便利な部品を集めた図書館、フレームワークはアプリの骨組み

英語の意味の通り、ライブラリは便利な部品を集めた図書館、フレームワークはアプリの骨組みです。イメージとしては即席ラーメン。麺とスープが入っている即席ラーメンはフレームワーク。スープを1から作ると大変ですが、麺を茹でてスープと混ぜれば最低限のラーメンが出来上がります。そこに好きな具材を追加することで、自分だけのラーメンの完成。プログラム開発における即席ラーメンがフレームワークです。

そしてライブラリは市販のトッピング。チャーシューやメンマを自分で作るのは大変ですが店でトッピング用に売ってますね。同様にライブラリとして便利な部品が公開されているので、それを組み合わせてプログラムを作ることができます。即席ラーメンや市販のトッピング、野菜などの具材を使ってラーメンを作るように、ライブラリやフレームワークを使ってプログラムを作るのです。

" /> ライブラリとフレームワークの違いとは?特徴や実例もプログラマーがわかりやすく解説 – Study-Z
IT・プログラミング雑学

ライブラリとフレームワークの違いとは?特徴や実例もプログラマーがわかりやすく解説

プログラムを開発する際に利用するライブラリとフレームワークってあるよな。この違いがわかっているか。この記事ではライブラリとフレームワークがどう違うか、ReactやjQueryといった実際のプログラミング言語のライブラリやフレームワークを挙げながら、プログラマでもあるライターのwoinaryと一緒に解説していきます。

ライター/woinary

某社で社内向け業務システムの開発、運用を30年近くやっていたシステム屋さん。現在はフリーランス。ガジェットやゲーム、ラノベが大好きなおっさんです。

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

image by iStockphoto

プログラムを開発する際に利用するのがライブラリやフレームワーク。では、これらは何が違うのでしょう。ライブラリは日本語にすると「図書館」です。図書館というからには本がたくさんありそう。一方、フレームワークは「骨組み」になります。一体何の骨組みなのでしょう。ここからまずは見ていきます。

ライブラリ:便利な機能を集めたもの

ライブラリは図書館と紹介しましたが、どのようなところでしょう。探しやすいように分類ごとに本をまとめてあり、借りた本を読むことができます。プログラムの開発でよく使うものや便利なものをまとめておいて、簡単に使える仕組みがライブラリです。

科学計算用のライブラリやAIのライブラリというものが公開されています。それを使うことで、0からプログラムを書かなくても目的のプログラムを楽に作ることができるのがライブラリです。ライブラリは自分のプログラムで使う部品を借りてきて自由に使えるものになります。

フレームワーク:アプリの基礎や土台

フレームワークもライブラリと似ています。フレームワークを使うことでプログラム開発が楽になる、という部分は同じです。大きな違いはその名の通りフレームワークはアプリケーションの「骨組み」ということ。建物の基礎や土台に似ています。

例えば、Webアプリを作るためのフレームワークのReact。実はすでにWebアプリとして動く骨組みが用意されているため、何もプログラムを書かなくても最低限のWebアプリとして動くのです。ここに実際に作りたい内容を肉付けしていくことでアプリケーションを作っていくのがフレームワーク(骨組み)。ライブラリと逆に、自分のやりたい内容を部品としてフレームワークに組み込むことでアプリケーションが出来上がります。

プログラムはモジュールでできている

image by iStockphoto

プログラムは1つの大きな塊ではなく、いくつかの小さな塊に分けて開発します。その1つ1つの塊が「モジュール」です。このモジュールのことをプログラミング言語によって関数やサブルーチン、クラス、モジュールと様々な名前で呼んでいますが、この記事ではまとめて「モジュール」と呼ぶことにします。プログラムは1つ以上のモジュールの集まりです

\次のページで「モジュールはソフトウェアの部品」を解説!/

次のページを読む
1 2 3 4
Share: