不信

先日職場のMLにこんなメールが流れた。


「モジュールAのコンパイルがg++で通りません。」



モジュールAは二つのプロダクトで共通で利用されるもので、一方はgcc、他方はg++でコンパイルする前提となっている。当然両方でコンパイルが通るように作っているのが大前提だ。


しばらくするとそのモジュール開発担当者Yから返信メールがきた。


「モジュールAは変更不可です。#ifdef〜#endifで対処できるのであればそうしてください。」


つまり、g++でコンパイルが通らないところはそのコンパイラを使った場合に限りそこのコードを通らないようにしてくれと言うのだ。


大前提である双方のコンパイラコンパイルできることという条件を無視して作っておきながら、変更不可などと言い出す。そもそもなんで変更不可なのかがわからない。じゃぁなんで#ifdefは追加して良いわけ?


さらに数分後、Y氏から再びメールが。

「関数Bは削除しました。ご迷惑をおかけしました。」


関数BとはそのモジュールAのコンパイルが通らなくなっていた元凶となっていた関数。なんと変更不可と自分で言っておきながらその関数自体削除したらしい。ホントありえない。Yに対する不信感は募るばかり。


そういえば以前私が書いたソースの改造をYがやったことがあるのだが、その後そのソースへの機能追加を依頼されてYが改造した後のソースを見てみてびっくりした。ありえないコメントがいっぱい書いてあった。
どうあり得ないかというと、ある関数があると、どう考えても自明なコメントばかりかいてあった。そんなコメントあるだけ無駄だ。
たとえて言うならこんな感じ。

    /* 「あ」と出力する。 */
    printf("あ");

printfというのは画面(正確には標準出力)に文字を出力する関数。これはCを書いたことがある人ならば誰でも知っていること。このソースを見れば100%「あ」と出力することがわかる。にもかかわらずわざわざこれをコメントとして書くことになんの意味があるの?
Yが改造したコードにはこんなコメントが延々書いてあった。ホントありえない。一体あのコメントを書いてどうしたかったのだろう??