あちこちで色々と(苦笑)コミュニケーションをしてしみじみと思うのですが。
基礎とか根底とか思想とか哲学とかって大切だなぁ、と。
いやまぁ直接のきっかけの一つは、現場で「ほかのところで"関数は絶対に2ネストまでしかしちゃいけない"って聞いたんですが」という質問からだったのですが。
「実装と哲学の違い*1」の話も、最近考えさせられる事がありましたし*2。
まぁ、直に教えた子達にはミミタコでしょうが。
技術は、まず「それがないことによる不便や不満」があり。
それが「こんな便利なことがしたい」という方向性の基本哲学となり。
その哲学を元に「初期実装」が行われ。
初期実装を使った後に「こんなことを足したい」「この部分は冗長だから削りたい」という変更があり。
現在に至るわけで。
なので、その技術を知るためには、その技術の「基本哲学」と「実装手段」と「その後の歴史」を順番に学ぶことが、もっとも順当な手段となりえるわけです。
或いは。
何かを作るなら、まず考えるべきは「哲学の部分を」きっちりと考える必要があるわけなんですね。
ちなみに法律だと逐条解説とかってのがあるですね。法律の「思想の根底 == 哲学」部分です。…ってのを教わったのは「法哲学」の学者さん*3だったりするあたりがなんとも(笑
まぁいずれにしても。基礎と、さらにその根っこにある「哲学」は、考察の上ではずせない必要不可欠なラインではあります。
………とはいえ。Linux知るためにディストリビューション作ろうとしたり、TCP調べてるうちにオシロスコープの波形にたどり着いたり。
あまつさえ、OS作ったりコンパイラ作ったり言語仕様作ったりすると*4、それはそれで微妙なのですが(苦笑
Xlib直叩きは………普通だよねぇ? …多分。pop3dとかhttpdとかも。