ライブラリはスクリプトで書き下せ!!!
そう、今まで、私はC/C++でライブラリを組んできたが、今思うにライブラリはスクリプトで書き下したほうがとても効率的だと思うようになってきた。
何故そのように思ったか、それはgoogle:OpenSSL]の[google:Perlによるスクリプト群を見てからだ。
md5やsha256等のプログラムを様々な環境(例えばアセンブラ間の文法の差異)に合わせたように出力するスクリプトがあるのだ。
これには感心した。スクリプトであらかじめ書いておけば ソースコード自体を多種多様な環境にあわせるように出力するのも容易だし、C++のコンパイラの文法の問題のようなコンパイラに依存した厄介な問題ともおさらばできるのだ。*1
しかしながらデメリットもある。
デバッグがしにくいという点。
各環境用の出力したコードのテスト面倒という点。
そして、スクリプトで記述する出力アルゴリズム自体に欠陥があると思いもしないバグコードを出力するスクリプトを書いてしまうかもしれないという点である。*2
だが、このような他のスクリプトに依存するような面倒な事をしないためにC言語ではプリプロセッサという機構を取り入れたのではないかとも感じるのだが、C++のような複雑なコンパイラ間の文法事情を考えると私はどう考えてもC++でまともなライブラリを製作するよりは*3スクリプトでC言語のコードを出力したほうが良いと感じるのだ。
C言語ならば普通のコンパイラであれば文法の差異によってコンパイルが出来ないといったような面倒な事が非常に起きにくくなるというメリットもある。
もちろんスクリプトで出力するライブラリのインターフェイスは統一しなくてはならないが、このメリットさえあればライブラリアン冥利に尽きるので私は提案した次第である。