フレームワーク、モジュール、ライブラリの違いと使い方が分からない
IDEやPython33同梱ファイルを眺めていて思った。フレームワーク、モジュール、ライブラリの3つの違いと使い方がわからない\(^o^)/
以下、パソコン用語辞典より引用、内容が古いのもあって一部改変してる。
多分、これ以上は、もう少し別の知識や経験が増えないと理解が難しいんじゃないかな。
モジュール
独立して扱えるソフトウェアやハードウェアのまとまり。組み立ての基本単位やユニットを指す。ソフトウェア開発では、全体レベルでの仕様を決めた後にモジュール単位でのプログラミングを進める。これにより、開発にかかる時間を短縮できるだけでなく、モジュールを汎用化することで開発コストを抑えることもできる。最近では開発段階でのモジュール化だけでなく、DLLやコンポーネントソフトのように実行ファイルのモジュール化が一般的になりつつある。
ユニット
DLL(dynamic link library)(あれ、私が知ってる奴じゃない?拡張子じゃないのか)
複数のプログラムで共通に使う関数やデータをひとまとめにし、プログラムを実行するときにこれを呼び出して使うソフトウェア技法、または、その関数やデータを集めたファイルを指す。動的リンクライブラリともいう。Windowsで採用されている。
DLLを使うと、複数のプログラムで同じコードを持つ必要がなく、修正はDLLファイルに対して行うだけでよい。その反面、DLLファイルを変更することにより、プログラムが動作しなくなってしまう事もある。DLLファイルには、dllという拡張子が付くことが多い。(あれ、知ってる奴だった。NetHackに同梱されていたキーボード入力に関わるファイルがdllだった。確か単独では機能しないとか。アプリケーションのファイルからNHファイルを読んで、そこから更にDLLファイルを読んでるってことか~。)
ライブラリ
プログラムで使う関数やサブルーチン、データなどの集まり。様々な機能を提供する関数などがまとめられている。プログラムの開発で、決まった処理や高度なプログラミング技術が必要な場合、ライブラリを使うと短期間で作成できる。
オブジェクト指向言語の場合は、クラスライブラリと呼ぶ共通ライブラリの利用が前提になっている。Windowsでは、プログラムの実行中に必要の応じて組み込む事のできるDLLというソフトウェア技法が使われている。