gallu’s blog

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

根っこの重要さとかなんとか

あちこちで色々と(苦笑)コミュニケーションをしてしみじみと思うのですが。
基礎とか根底とか思想とか哲学とかって大切だなぁ、と。


いやまぁ直接のきっかけの一つは、現場で「ほかのところで"関数は絶対に2ネストまでしかしちゃいけない"って聞いたんですが」という質問からだったのですが。
「実装と哲学の違い*1」の話も、最近考えさせられる事がありましたし*2


まぁ、直に教えた子達にはミミタコでしょうが。


技術は、まず「それがないことによる不便や不満」があり。
それが「こんな便利なことがしたい」という方向性の基本哲学となり。
その哲学を元に「初期実装」が行われ。
初期実装を使った後に「こんなことを足したい」「この部分は冗長だから削りたい」という変更があり。


現在に至るわけで。
なので、その技術を知るためには、その技術の「基本哲学」と「実装手段」と「その後の歴史」を順番に学ぶことが、もっとも順当な手段となりえるわけです。
或いは。
何かを作るなら、まず考えるべきは「哲学の部分を」きっちりと考える必要があるわけなんですね。
ちなみに法律だと逐条解説とかってのがあるですね。法律の「思想の根底 == 哲学」部分です。…ってのを教わったのは「法哲学」の学者さん*3だったりするあたりがなんとも(笑


まぁいずれにしても。基礎と、さらにその根っこにある「哲学」は、考察の上ではずせない必要不可欠なラインではあります。
………とはいえ。Linux知るためにディストリビューション作ろうとしたり、TCP調べてるうちにオシロスコープの波形にたどり着いたり。
あまつさえ、OS作ったりコンパイラ作ったり言語仕様作ったりすると*4、それはそれで微妙なのですが(苦笑
Xlib直叩きは………普通だよねぇ? …多分。pop3dとかhttpdとかも。

*1:「何をしたいのか」が哲学であり、その哲学を実現する手段、或いは実現そのものが「実装」。

*2:今度また詳細書きますが。MW テンプレートエンジンconvにおいて、テンプレートに書いていいのは「哲学」だけで、「実装」を書いてはいけない、というお話。コメントを下さった方のおかげで随分ときれいに整理が出来たものです。感謝感謝。

*3:わかる人にだけわかる台詞。俺と経歴バトルしてる「彼」です(笑

*4:DBMS作ると概ね制覇?