一息ついたので、ちょっと仕事のことを

ここ1ヶ月ちょっとの間、製品化に向けたソフト開発の終盤で多忙を極めていたが、どうにか出荷できそうな見通しがついた。僕が担当したのは、全体で数百万行ある大規模ソフトの中の極一部に過ぎないが、今回の目玉となるネットと映像を使った新機能部分である。

このブログではJavaScriptについていろいろ書いているが、今の仕事では専らC++を使っている。ブラウザ上で実行するJavaScriptのコードであれば、同時にロードするのはせいぜい1万行程度であり、ちょっと修正して即実行というインタラクティブな開発が可能であるが、数百万行を超えると全体のコンパイルだけで30分以上かかってしまうため、そういうわけにはいかない。通常はもちろん部分コンパイルであるが、最後のリンクに5分くらい要してしまうのである。また、メモリが限られているからデバッグ環境を組み込むことができず、頼りとなるのはコンソールに出力されるログ、経験と勘、それと、現象から原因を合理的に推論する論理的思考である。とても原始的なスタイルだ。といっても、プログラミングを覚えた頃から派手なIDEなど使わず、Emacs一本でほとんどのことをしてきたから、自分の性に合っている。

開発は北米や欧州を含め、国内でも分散しており、同じ社内でありながら顔も見たことない人達とプロジェクト管理ソフト上でコミュニケーションしながら進めている。稚拙な英語でも何とか意図は伝わるし、まさにUMLやプログラム言語が共通言語であることも実感した。

開発したソフトは残念ながら欧州向けだ。具体的なことを書くことはできないが、日本でもこういうことができたらいいな、と安定してきたソフトを自らユーザとなって使っていてつくづく思うが、いろいろ難しいらしい。日本がますます世界から取り残されてしまうのではないかと心配になる。 

いずれにしても、自分の書いたソフトが製品内部に組み込まれて世の中に出て行き、多くの人に使われるというのはそれなりに嬉しい。はやりそれは実際にコードを書いている人間にしかわからないものだと思う。途中過程ではかなりの苦労もした。でも、好きだから苦にはならない。まとまったモジュールを一人でコーディングしているため、自分が失敗したらプロジェクトに多大な遅延と損害を与えるという、ほどよい緊張感の中、ちょっとした壁やトンネルもあったけど、プログラムを書くというのは、まさに自分自身との対話であり、人を知ることでもあるということを改めて思いました。