仕事と晩飯とその他

日記です。

ようやくDOMが分かった

もう20年ぐらい前かなあ、会社でシステム会社の社長からlogoというちょっと変わったプログラム言語で作られた業務システムの説明を受けている最中に突然「オブジェクト指向」が理解できたことがあった。

logoそのものはそれよりさらに前、紹介記事を読んだことがあった。ロボットに指示を与えて動かすのに適したプログラミング言語みたいな紹介記事。簡単なプログラムの例も載っていたはず(『ログイン』だったかなあ、よく覚えていない)。BASIC(その当時の自分が唯一少しだけ触れたプログラミング言語)とは随分違うなあという感想で、logoそのものの「オブジェクトがうんちゃら」はまったく理解できなかった。

それから十数年経って、突然オブジェクト指向が理解できた時は、なんというかこう、世界が目の前でパーッと広がる感じがした。いや、本当に。急に世界に奥行きが増した気がしたんだ。

で、昨日の朝、シャワーを浴びている最中にDOMがスカッと腑に落ちた。いや、ここ最近ずっとXMLとか触っているけど、どうしてもDOMが理解できていなかった。確かにXPATHで親ノードとか子ノードとかsiblingとかprecedingとか探したり使ったりしてるけど、正直なんとなくでしかなかった。XMLの分厚い本を通読(2回)して、必要な箇所を都度参照したりして、だいぶ分かった気でいたが、それでもDOMについてはなんとなく試行錯誤してよく分からないまま上手くいったらOKみたいな感じでしかなかった。

昨日の朝は本当に、DOMがすっかり分かった。腑に落ちた。だけでなく、parentNodeだろうがChildNodeだろうがいけるし、ようやくjavascriptのGetElementsByIdとか、そのあたりにも抵抗が無くなった。そして、どうしてXHTMLで空タグは閉じるのか、その意味もスカッと理解できた。そうだよ、空タグは閉じないとダメだよね。あと、javascriptのWithDocumentを使っちゃいけない理由もわかった。DOM書き換わっちゃうからね、ダメだね。innerHTMLの必然もわかった。DOMだよね。

今朝になって苦手だったjavascriptのDOMにトライしてみたところ、ちょっとピンと来ていないところは当然あるものの、基本的な線としてはいけた。そうか、VBAのthisっていうのもオブジェクト指向だと当たり前ってことか。なんだか色んなことがつながった。

面白いなあ、プログラミング。本当に面白い。もっと色々やってみたい。日曜プログラマー。楽しい。