Bubbles in a pool

よどみに浮かぶうたかた

ライブラリやフレームワークって一体何なのかようやく理解できた

たのしいCocoaプログラミング Lesson1 アプリケーションとフレームワーク 完了

ずっと疑問があった。C言語にしろpythonにしろ、本をめくればHellow, Worldのプログラムから始まる。こういうソースコードが書けるようになれば、アプリケーションって作れるの?ってこと。プログラミング言語と自分がイメージするアプリケーション(=デスクトップアプリケーション)の間に、どうしても見えないモヤモヤがあった。

実は、デスクトップアプリケーションを作るには、プログラミング言語の勉強をしただけではまだ道のりの半分なんだ。プログラミング言語を覚えた上で、デスクトップアプリケーションを作るためのソフトウェアを知る必要があるんだ。

あ、そうなの?

つまり、デスクトップアプリケーション、というかGUIを使うアプリケーションでは、ウィンドウやメニューといった機能を提供してくれるソフトウェアが必要になるんだ。こういったアプリケーションのために機能提供するソフトウェアのことを、ライブラリやフレームワークと呼ぶ。そしてこのフレームワークの機能は、プログラミング言語によって呼び出される。

あ、なんだそういうことだったのね。この文章だけでも、私にとっては本1冊分の価値がある。だってね、ライブラリだのフレームワークだのよく見かけてはいてもイマイチ意味がわからない。イメージできなかったんですよ。

アプリケーションフレームワーク (Application Framework) とは、プログラミングにおいて、特定のオペレーティングシステムのためのアプリケーションの標準構造を実装するのに使われるクラスやライブラリの集まりである。単にフレームワークとも呼ぶ。(Wikipedia

ソフトウェアの世界では、アプリケーションソフトを開発する際に頻繁に必要とされる汎用的な機能をまとめて提供し、アプリケーションの土台として機能するソフトウェアのこと。アプリケーションの雛型。(IT用語辞典)

これ初心者にはわかりません。

私が知りたかったことは、単語そのものの意味ではなく、単語と単語の関係だったり、それがどういう役割を果たすものなのか、ということだったんだなと。『ライブラリやフレームワークって、アプリケーションを作るために必要で、プログラミング言語で呼び出すことができる。だからプログラミング言語を学ぶ必要があるし、どんなライブラリやフレームワークがあるかを知ることが大切なんだ』とようやく理解できた。例えるなら召喚獣(ライブラリ・フレームワーク)を呼び出す呪文(プログラミング言語)って感じ?全然違うかもしれませんが。現在腐るほど情報は溢れているけど、自分にとって必要な情報は結局自分が見つけるしかないんだよなとつくづく思いました。

Lesson1で出てきた単語(出た順)

  • OS
  • アプリケーション
  • デスクトップアプリケーション
  • GUI(グラフィカルユーザインタフェース)
  • Webアプリケーション
  • コマンドラインアプリケーション
  • ターミナル
  • コマンド
  • CUI(キャラクタユーザインタフェース)
  • ソースコード
  • ライブラリ
  • フレームワーク
  • Carbon
  • Cocoa
  • otool