ぱそこんトラブル日記

4月24日
ディスクの使用量を知りたくて簡単なプログラムを作ったのだが、Win95ではどうだか、よく知らないが、NTではドライブのルートディレクトリに鎮座するpagefile.sys(スワップファイル)がWin32APIのGetCompressedFileSize()でもエラーになり、CreateFile()でもエラーになるからGetFileSize()も使えない。困ったなと思っていると、先輩から、FindFirstFile()を使え。とアドバイスをもらった。
DOSのシステムコールにあったfindfirst,findnextがWin16に無く、隔世遺伝でWin32APIに追加されたAPIである。もともと、DOSのシステムコールであるが、Cコンパイラのライブラリ関数として実装されたのはボーランドが早く、MS-Cの方が遅かった。しかし、それが時を経て復活するとは、よほど気に入ってたのであろうか?

ネットスケープが5.0のソースコードを公開を始めた。
なんだったか雑誌にコンパイルした記事が載っていた。
Pentium2-266MHzにメモリ128Mでビルドするのに30分くらいかかるらしい。
あげくにたくさんワーニングが出るらしい。
それは良いとして、最近のコンパイラは速くなった。速くなったというよりも機械の性能が上がった。というべきか。
ホストはずっと以前からそうだったと思うのだが、IBMのPowerStationのコンパイラがインクリメンタルコンパイラになったよ。と聞いてから数年後、パソコンのVisual-C++やBorland-C++、Borland C++Builderといったコンパイラもインクリメンタルコンパイラになってリンクが速くなった。だから、上記のネットスケープのビルドも2回目以降は速いはずだ?
閑話休題、昔に比べて最近のコンパイルに時間がかかるのはWindowsAPIのヘッダファイルとC++のクラスライブラリせいだよね。
特に、パソコンの環境を悪化させた原因のひとつにクラスライブラリの多用があると思う。皆WindowsのSDKだけでプログラムを作成していたら、そんなに巨大なプログラムにはならないはずだ。DialProxyなんて260Kバイトしかない。これはSDKしか使っていないおかげである。プログラムサイズが小さいから、機能が貧弱だとは思わないように。
それに引き替えBorland C++Builderの大きくなること。最低でも250Kバイト。ちょっとしたプログラムで300Kバイトにもなってしまう。
それに、ClassicCでは速いコンパイル速度も、C++ではぐっと遅くなる。
オブジェクト指向も善し悪しなところがあるし、いまさらアセンブラとは言わないが、何がなんでもC++が良いなんていうのは幻想ではなかろうか?と言っていたら、すでに時代はJAVAになっていた。
これまた、遅そうだねえ...