hogeとはワイルドカードのようなものです。日々起こった、さまざまなこと −すなわちワイルドカード− を取り上げて日記を書く、という意味で名付けたのかというとそうでもありません。適当に決めたらこんな理由が浮かんできました。
12/27/2011 [長年日記]
■ [戯言] ひとりごと
ハードウェアは陳腐化するのだと人の云ふ.
その通りだけれど,陳腐化するのはハードウェアだけじゃあない. ソフトウェアも,サービスも,理論だって陳腐化する. 極論を言えば,昨日つくられたものは今日陳腐化している.
暗号の 2010 年問題などは良い例だ. 暗号強度はその解を導くためにかかるコストをよりどころにする. しかし計算機の性能向上によってそのコストは年々減っていく, つまり何もしなくても暗号強度は弱くなっていくということになるのだ.
技術は日々進歩しているし,市場ニーズなど環境が変わっていくのに, 変わる前に作られたものが陳腐化しないなんてことがあるはずもない.
「ソフトウェアより上は柔軟にその形を変えられる」 ここに大きな罠がある. 基本設計を逸脱した仕様を取り込むのはなかなかに難しく, 下手にやってしまうと, 優れたものを一瞬にしてダメにしてしまうことがある. これはその規模が大きければ大きいほど起きやすいと思う.
諸々の都合でやらざるを得ないということは往々にしてある. 「めんどくさい」「お金がない」「早く欲しい」などなど. しかし,やるならやるで,それなりの覚悟をもってやらないといけない. その時には分からなかった問題が後から次々に発覚するなんてこともあるだろうし,それが足枷となって拡張不能に陥ったりすることもあるだろう. 「めんどくさい」から既存のものにちょちょいと手を加えるだけで流用したはずが,そのせいで余計に「めんどくさい」ことになることもあるのだ. 基本設計を逸脱するというのは,そういう可能性を孕んでいるということだ.
そんなことが起こらないように努力するのも我々のようなエンジニアの仕事のうちだ. だけど,ある時点での環境,考え方,予測等に基づいた基本設計が,現在の環境,考え方,予測等と合っているだろうか,とまず思わないといけない. そもそも設計段階,いや企画段階から,「これからつくるものは最長でも○年しか使わない」ということを考えておかなきゃいけない. そしてその EOL 時点で別の「その時の環境,考え方,予測等に合ったもの」に乗り換えられるようスケジューリングしなきゃいけない. このサイクルを正常に回せるようにならなきゃいけない. これは決してハードウェアに限った話などではない.
もちろん,少しずつ姿形を変えたりしながら,何年も何十年も使い続けられた,使い続けられてきているものも存在する. これらは基本設計というか思想みたいなところが非常にコンパクトになっていて,変な要件は拡張とかレイヤとかで何とかしろよ,というような形になっている. こういったものを考えつくりだすことがエンジニアにとって目指すべき至高の仕事なのだけれど,まあそう簡単にできたら苦労はない. それにこれらも世界中のエンジニアの血と汗と涙によって支えられて存続できているのだ.
名前は同じでもその時の環境に合わせて基本部分からごっそり変わりもはや別物になった (でメジャーバージョンアップした) というものも多い. 例えばインターネットは IPv4 が考案された当初,アドレス空間は 32bit で充分だったのだろう. しかし環境が変わった (普及しまくった) ため,128bit アドレス空間を持つ IPv6 へ移行しなければならなくなっている.
環境が変わればものも変わる,変わらざるを得ない,変われなければ死ぬ. この当たり前のことを
(省略されました... 続きを読むにはわっふるわっふると書き込んで下さい)
□ shy [わっふるわっふる ]
□ mpet [わっふるわっふる ]
□ smbd [わっふるわっふる ]
□ atzm [なにこれこわい ]