Whiteのふりーとーく

プログラマーは哲学者たれ

About this Page |過去分一覧

近頃版/another blog@hatena/Wiki/BBS

< Wii関連 | ゼロの使い魔読んだ観た。 >

 

プログラマーは哲学者たれ

ひらしょーさんのとりあえず、オブジェクト指向って言葉使うのやめようという発言に反応するふりをしてだらだらと。

_ひらしょーさんが力説してるあたりのことは「カプセル化」というそのものズバリの言葉があるじゃん、と思います。しかしオブジェクト指向そのものにカプセル化は必要でもなんでもない(ex. perlのオブジェクト指向)。カプセル化できた方がいろいろ都合がいいことは確かだけど。

_「オブジェクト指向」なるものは「データ構造中心デザイン」とでも言い替えれば比較的実情に近いんじゃないかと。

まずはデータの塊を考える(構造体とか)。でもってデータ構造とそれに対する処理は密接に関係する(関係せざるを得ない)。だったらデータ構造とそれに対する処理をくっつけてしまえばいいじゃん?、と。そうすればprintという術語がstringというデータにしか使えなかった不満が解消されるよね、と。

_ぶっちゃけオブジェクト指向そのものにはprivate methodもprivate fieldも不要。書く人がそのへんを意識できてればいらない。でも意識し続けるのってダルい。だからオブジェクト指向のための言語デザインをするときには、そのへん楽できるように、明確なカプセル化の文法を用意し、カプセル化するなら折角だからprivateも入れる。

その結果言語の表層はカプセル化とかprivateとかが重要なんだ、と思えるものになってしまう。まあそういうふうにデザインされたんだからあたりまえなんだけど。でもデザイナーほどオブジェクト指向を知らない人がその言語を使うと、その表層ばかりが大事になっちゃう、と。

_よいプログラマはいっぱしの哲学者である、というのは私の信仰なんだけど。あるいは言語学者。言語というものは背景になんらかの思想、視点、指向を抱えていて、よいプログラマとはプログラム言語を使いながらそれを理解できる人間である、と。あるいは言語に囚われない。背景になってる思想とか指向とかをきっちり学んでいて、臨機応変にそれを使い分けられる。……自分がそういう人になれているかというと、微妙なところだけど。

TrackBack ping url:

名前

TrackBack:


御意見・御感想の宛先white@niu.ne.jp