質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.85%

  • JavaScript

    14770questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • jQueryプラグイン

    445questions

    jQueryの拡張機能。 様々な種類があり、その数は膨大です。公開済みのプラグインの他にも、自作することもできます。 jQueryで利用できるようにしておくだけで、導入およびカスタマイズが比較的容易に行なえます。

  • プラグイン

    387questions

    プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

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

受付中

回答 3

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 461

moscow3

score 100

ライブラリとプラグインとフレームワーク。どれもプログラミングの拡張機能的な感じですが、どのように違うのでしょうか?
具体例とかもあるとありがたいです。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

+3

どれもはっきりとした定義はなく、なんとなくの意味合いで使われることが多いと思います。例えば React はライブラリと言われたりフレームワークと言われたりしますので、両者に明確な境界はないと思います。


ライブラリは広い意味では外から使用できる js 全体を指し、狭い意味では特定の機能を持つ関数やクラス、プロトタイプの集まりだと思います。

例: lodash (utility), axios (ajax), Rxjs (observer), jQuery (DOM操作などいろいろ便利セット), anime.js (animation)


ライブラリは、自分のコードからライブラリを「使う」だけで、主導権は自身にありますが、フレームワークは制御の反転と言われるように、ソフトウェアの骨組みを提供してくれるものです。フレームワークがアプリケーション全体の主導権を握り、自分の書くコードはフレームワークから適宜呼び出されるという形です。

例: React/Angular/Vue (front-end app), Bootstrap (UI/CSS), Express (web server)


プラグインはすでにあるソフトウェアに補助的に機能を付け加えるようなライブラリです。jQuery にはプラグインがたくさん作られています。

例: jQuery DataTables, jQuery Validation Plugin, UglifyJS Webpack Plugin

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

ライブラリ = ある機能に特化した関数の集合。目的は、機能・知識の再利用。
プラグイン = ある機能に対して拡張機能を提供するもの。目的は、機能の拡張。
フレームワーク = ある機能に対する設計の枠組みを提供するもの。関して、ある機能に対するライブラリの集合が内包される。目的は、集団開発における設計の標準化・生産性向上。

一般的には、Webフレームワークなど、比較的適用範囲が大きいものがフレームと呼ばれますね。

家に例えるなら、家を建てるとき、柱は最低何m以内に何本建てましょう。
そうしないと崩れるので、ここは共通の意識を持ちましょう。
といったものです。

ライブラリやプラグインは、建築するのに使う道具と言ったところでしょうか。
インパクトドライバーは、先端のビット(+や-)を付け替えることで、用途に応じた目的が達成できます。
これは回る(ライブラリ)という仕組みを利用して、ビット(プラグイン)により拡張機能を実現していると言えましょう。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

正しいかどうかわかりませんが個人的なイメージでは
ライブラリ=関数の集合体
フレームワーク=プログラムのコーディング、作り自体に影響するもの
プラグイン=ライブラリ、フレームワーク上で動作する拡張機能
みたいな感じです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.85%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • JavaScript

    14770questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • jQueryプラグイン

    445questions

    jQueryの拡張機能。 様々な種類があり、その数は膨大です。公開済みのプラグインの他にも、自作することもできます。 jQueryで利用できるようにしておくだけで、導入およびカスタマイズが比較的容易に行なえます。

  • プラグイン

    387questions

    プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。