2011年7月11日月曜日

定義

僕はプログラムとかソフトウェアとかの言葉の定義を次のように考えています。(個人的な見解なので事実とは異なる部分もあります。しかも結構人によって言い方違ったりそもそもちゃんと言葉の分類をして使っている例も一般的には少ないんで、時にこんがらがることがあります。)

・人間でも手作業でできるルーチンを自動化したのが「スクリプト」

・人間じゃできない(根性入れて人生かければできるけど圧倒的に不効率)確率計算や行列計算などの作業をコンピュータにやらせるための命令が「プログラム」

・プログラム、スクリプトの具体的な内容を示すのが「コードあるいはソースコード」

・ プログラム、スクリプトをパッケージングしたもののうち、狭い範囲の指向性を持つもの(一つあるいは複数だが分野の狭い目的の達成のために製作されたもの)はソフトウェア、ユーザごとの目的には依存せず、その目的を達成するためのプログラムやスクリプトで引用されることを目的に作られたものが「ライブラリあるいはモジュール」

・より大きなサブジェクトのためにソフトウェアを集合させたものが「パッケージ」

まあ実際に日常的にこの定義を厳密に守って言動しているかというと、その限りではないのですが・・・



また、これは半分冗談の感覚ですが、生物学者もその性質で二分できると考えています。

実際に生きてる物を取り扱って、配列とったり遺伝子導入したり形態観察したりする人は「ナマモノ学者」です。ほっとくと腐ります(いや結構真面目な意味で)

外見上生物を研究対象にしているように見えても、その内実ではin silicoなデータだけを扱い、数理統計とか行列計算とか微分方程式とかプログラミングとか理論的なことだけしこしこやってるのがエセイブツ学者です。かっちょよく言おうとすれば理論生物学者です。上記二つ言い方は失礼かもしれませんが、まあそこは冗談と言うことで^^

ちなみに、エセイブツ学者は往々にして「目的のためには手段を選ばないの反対」になることが多い気がします。ソースは俺。

もうちょい柔らかな言い方をすると、生物学を料理と考えるならば、前者が農家(これだと培養関連になってしまうか?)、後者が包丁職人です。どちらも美味しい料理を作るためには欠かすことのできない人種だということは否定できないでしょう。

しかし、これについては全ての人がきれいに分類されるわけではなく、その中間体をとることが多いんじゃないかと思います。例えるならば家庭菜園をもって包丁使いも達者な主婦といったところですか・・・細かいところでどれが得意かは人によって様々でしょうが。料理をする、というのはこの二つとはまた違ったスキルになりますね。よくうちの飲み会なんかで言われることに近いんじゃないかと思います。

ただ、自分が何になりたいかといえば、やはり生粋の包丁職人になりたいと考えます。然るに「自分の包丁を使えば食材を上手く調理できて美味しい料理が作れる使う人によるけどね」なのが理想型となるわけですが、そのためには自分の器具が他のよりも優れているということを証明せねばなりません。さらにそのためには自分の対極の分野も含め、美味しい料理を作るための総合的な知識や経験を蓄積せねばならず、これが自分の専門を極めるのと同じくらい大事な(だけど遙かに難しい)ことだと最近になって実感しています。

まあ、僕は上述したうちの何にもなれていない状態ですが、一つ一つ項目をクリアしていって、自分の理想像に近づければと思いますね。

0 件のコメント: