ほっしーの技術ネタ備忘録

技術ネタの備忘録です。基本的に私が忘れないためのものです。他の人の役にも立つといいなぁ。

中が見えない良さ、見える良さ

id:hyoshiok:20050519 こんな投稿見つけたんで
私が思ったこと書いてトラックバックしときます。


OS や コンパイラ は、ハードのことをほとんど隠蔽してしまいます。
けど、これって実は毎回同じ処理だとか、自動でやってくれると便利なことを
コンピュータにやらせてる ( 定型処理なんかはコンピュータの得意分野ですしねっ! )
だけで、実際には隠蔽というよりはラッピングといっても良いんじゃないかと思ってます。


ではそのラッピングの利点、欠点はというと…

  • 利点
    • 中でやってる処理を知らなくても扱うことが出来る
    • 毎回同じことを毎回書くのは面倒だ
  • 欠点
    • 中でやってる処理を知らなくても扱えてしまう



こんな感じじゃないかな、と思います。


特に私は「コンピュータは人間が手抜きをするためものものだ」と信じてるので
利点の2つ目は個人的に重要だと思ってますがここでは置いといて...(笑)


問題なのは、

  • 中でやってる処理を知らなくても扱うことが出来る
  • 中でやってる処理を知らなくても扱えてしまう

これらが表裏一体なことなんじゃないかな、と。


余計なことを考えなくて済むのは非常に楽で嬉しい。
けれども副作用として、「実はわかってなくても」使えた気になってしまう、
もしくは使いこなしたという錯覚を覚えやすい。
だからこそ、「実はわかってない、知ったかぶりプログラマ」が増えてるんじゃないかな、と思うわけです。


逆に考えれば、ラッピングが出来る人ってのは確実に中まで知ってると言えるわけだけども、
間違えちゃいけないのが、「出来る人=コンパイラなどを作れる人」ではなく、
「出来る人⊇コンパイラなどを作れる人」だってこと。


手抜きするためにコンピュータが発明されたので、毎回同じことを書くなら
何とか省略しようと考えるのは正しい発想であるはずだし、
そもそも、既存に良いものがあるのに無視して、結局自分の手間を増やすなんて
この上なくナンセンスではないでしょうか。


こんだけ長々と書いて結局何が言いたいのかというと、


「中身を知っててツールを *利用* してるのと、中身を知らずにツールに *依存* してるのとでは天と地ほどの差がある」


こんだけ一行なんですけどね。(苦笑)




ちなみに。こんだけ偉そうなこと書いてる私は知ったかぶりに分類されますのであしからず...