困ったソース その1 Made in U.S.A.

1999.06.13

 仕事で、アメリカ産のプログラムの日本語化&改造ってのをいくつかやったんだけど、やっぱり思ったわね。英語でもの考えてる人間の考えはわからん。
困るパターンにはいくつかあるんだけど、

 ソースが高度すぎるってのはC++の場合が多いわね。確かに困るんだけど、これは自分で努力すりゃ理解できるようになるわけだし、自分のスキル向上にも繋がるんで、困るとはいってもマシなもんよ。努力のしがいもあるわ。
 まあ、自分の技術力の低さが嫌になることもあるけどさ。ああ私にはこんなクラス設計なんて思いもよらないわぁ、とか、いやーんCWinAppからこんな風に派生クラスつくって、別スレッドでシリアル割り込みをイベントとして処理できるなんて素敵〜あたしこんなの実装できないわぁとか。自信喪失すんのよね。

これと紙一重なのが、ソースがトリッキーなやつ。高度ってわけじゃないんだけど、いろんな小技がちりばめられてて、参考にはなるけど、うーん、て奴。この手のソースは古典的なC言語で書いてあって、簡潔にまとまってることが多いのよね。でも、冗長でもいいから、バグが入りづらい、可読性の高いコードの方が好みだわ私としては。

 ソースがおバカすぎてわかんないってのは腹立たしいわよ。なんでそうなるんじゃあぁぁって、全身全霊で突っ込みを入れたくなるわ。山のようにグローバル変数使ってたりとか、それも宣言してるだけで使ってないとか。古典的なCか、C++なんだけどCを引き摺りまくってるってのが多いわね。
 変数名でgIconとかいうのがあるから、アイコンハンドルかしらねえ、gって多分グローバル変数よねぇ、あら、なにか定数みたいなの代入してるわ、ん〜、何してんのかしらこれ、どれどれ、宣言してるところは・・・なにぃ? BOOL gIconだとおぉぉ。なんでBOOL型の変数に、定数代入してんのよぉ?そりゃ、確かにBOOL は int をtypedefしてるだけだから代入はできるけど、そうじゃないでしょBOOLってのわぁぁぁ、とか。
 char cString[ ] とかっていう変数名も困るわね。中途半端に嘘のハンガリアン記法を使わないでちょうだい。混乱するでしょ。

 ソースが高度だったりおバカだったりするのは日本人のソースも一緒だけど、(おバカの割合が多いよーな気はするが)アメリカンなやつってだいたい仕様書がないのよね。日本の会社のサラリーマンSEとかが作るプログラムって普通は仕様書がついてるわよ。ま、中には仕様書がなかったり、あっても使い物にならない仕様書だったりってこともあるけど。アメリカ産の場合、ほぼ仕様書はないと思った方がいいみたい。ヘッダファイルが仕様書だってパターンが多いわね。
 確かに、別文書で仕様書があるよりは、ヘッダを見れば全てがわかるって方がいい場合もあるのは認めるわ。でも、ヘッダ見てもやっぱりわかんな〜いってのもあるのよ。

 ヘッダ見てもわかんな〜いの最右翼は、コメントがついてない奴。そりゃわかんないわよ。書いてないんだもの参考になることが。きっと納期に追われて、コメントなんて書いてる余裕がなかっただろうーなーと思いつつ、地道にソースを解析するしかないのよね。疲れるわ。

 コメントついてないのは論外だけど、多すぎるのも困るのよ。何が重要なのかわかんないのよね。だいたい、アメリカ産のソースだからコメントは英語なわけよ。どうでもいい英語なんか大量に読みたくないわよあたし日本人なんだから。寒いアメリカンジョークなんかがてんこ盛りだった日にゃぁ、宣戦布告したくなるわよ鬼畜米英。(あぶないって)
 しかも、ソース読めば一目瞭然なことまで、ご丁寧にコメントついてたりすると、そんなのはどうでもいいからポイントを書けポイントを、って叫びたくなるわ。

 最低なのは、コメントがついてるけど大嘘って奴ね。コメントを信じてソースを読んでくと、何かおかしいのよ。コメントが正しくてソースがバグってるのか、コメント自身が間違ってるのかを判断するために、結局ソースを全部読まなきゃいけなくなるのよね。不毛だわ。ちなみに、これは洋の東西を問わないわね。日本語の大嘘コメントってのも泣かされたことはあったわ。

 お仕事で書くプログラムって、書いた本人だけじゃなくて、それを引き継ぐ何人もの人が見ることが多いから、わかりやすいソースに適切なコメントってのはすごく大事なのよ。これ読んでるあなたがプログラマだったら、肝に銘じておくことね。っていうか、職業プログラマだったらみんな百も承知とは思うけど。
 さて、私が書いたソースは、他人からどんな風にボロクソにけなされてるのかしら。納期間際だとグチャグチャになるのねぇソースって。ほほほ。


春までなんぼに戻る | ホームページに戻る

ご意見、ご感想はけーたまで