shin'nosuke さんのアレグロモデラート

アレグロモデラート(Allegro moderato)は、速さを示す演奏記号で「穏やかに速く」

よくある現象

よくある現象。

通常の言語仕様では説明がつかない現象のことを、shin'さんの言葉で「神の領域」と言うのだが、これは、とんでもなく難しいか、とんでもなくしょうもないのいずれかである。

「神の領域」の対応は、その理解に苦しむ現象にたじろぎ、同じように「解決の神」が降りてくるのを待ってしまいがちだ。これが納期の迫ったプロジェクトなら、別の方法での実装に切り替えるか、ある程度説明のできる現象なら、顧客に納期を延長してもらうなどの対策があるが、

たいてい、「神の領域」は現象が起こるコードの前後の実装方法に問題がある場合が多い。それを見つけるためには、基本に忠実に、すべての要素をひとつひとつつぶしていくしか方法がない。

IT革命以降のプログラマ(僕もそうだが)は、Visual Studio でF8を押し続けることをデバッグというが、それはデバッグではなく、トレースと言い、デバッグは、バグをつぶす行為全体のことを言う。「神の領域」の場合、たとえば、Cでポインタの操作が間違っていたら、IDE(トレースやウォッチができる統合開発環境)にも被害を及ぼしている可能性がある。だから、面倒くさがらずに、fopen か Open 、もしくはファイルストリームを開けて、ログを出力する。そして、IDEではなく、本来のバイナリがどの部分まで通っているかを探り、その範囲を縮めていくことで本来の現象を探る必要がある。

これができるかできないか、しようとするかしようとしないかでエンジニアないしはプログラマの底がわかる。現象のとらえかたも、基礎理論の有無で変わってくるので、相応の知識も必要で、それは間違いなく2種である。

40歳前後のVisual Basicのエンジニアは「神の領域」をマイクロソフトのせいにする。MS-DOSからWindowsになり、ブラックボックスが増えたのを目の当たりにしているからね。でも、Visual Basic 6.0 は、僕らが考えているよりも、明らかによくできているよ。(Oracleは微妙だけど。)

「神の領域」はたまにしかお目にかかれないが、こちらはよくある現象である。