まさしく勉強になりました。
C++

先日、「東京に行って台風のせいで帰ってくるのが大変だった」という記事を書きましたが、いったい何のために東京に行ったのかは書きませんでした。実家へ行ったり長男に会ったりというのは実はあくまで「ついで」であって、本当の目的は東京大学で行われた「Special Lecture: “The Continuing Evolution of C++” by Dr. Bjarne Stroustrup, the inventor of the C++ language」という講演を聞きに行くことだったのです。

これは東京大学大学院情報理工学系研究科が講義の一環として開催したもので、学内向けの講演会ながら一般の参加も受け付けるということだったので申し込んでみたものです。参加登録は6月25日の正午12時からということだったのですが、私は勤務先の昼休みが12:15からなので休憩時間に入るやいなやアクセスしたところ、その時点で100名の枠で50番目ということだったので、人気のほどが伺えます。受付は先着順でしたが、最終的には定員の倍ほどの申し込みがあったようです。

会場は本郷キャンパスの講義室の一つでしたが、私は初めて訪問したのでお上りさんらしく東大の代名詞である赤門やら大学紛争で知られた安田講堂やら、写真でしか見たことのなかったものを見られたのも良かったです。一般に公開されているものなので誰でも自由に見られるのですが、私はこれまで機会がなかったのです。

さて講演の方へ話を移すと、知っている人なら知っていて当然ですが、講師はC++言語を開発したDr. Bjarne Stroustrupです。私にとってはこんな凄い人を肉眼で見られて、話を生で聞けるというだけで大興奮なのですが、知らない人にそれを伝えるのは難しいかもしれません。ちょっと違う分野で言えばBill Gatesのプレゼンが聞ける、というような感じでしょうか。まあ、Dr. Stroustrupは大富豪でもVIPでもないかもしれませんが、それくらい特別な人だということです。

とはいえ、私は実はC++を日頃使っているわけではないので、当初はそんな私にはもったいようにも思えました。大学の卒業論文はC++のクラスブラウザをC++で作るというものだったのですが、卒業後の仕事ではCをずっと使っていて、C++を使わないままちょうど25年も経ってしまっていたのです。しかし、今回の講演はそんな私にもってこいだったとも言えます。そのテーマが「C++のこれまでとこれからの進化」というようなものだったので、C++がどう良くなってきて、今後どうなっていくのかがわかり、結局は非常に有益なものとなったと思います。

講演はもちろん英語で通訳もありませんでしたし、Q&Aセッションでも時間いっぱいまで活発に質問が(英語で)行われていてさすが東大生と思ったのですが、博士のコメントで印象的だったのは、「C++はオブジェクト指向言語ではない」「CよりC++が非効率という場面はない」というようなことです。前者はC++はオブジェクト指向プログラミングを支援する機構を備えてはいるが、それを前提にしたものではないということ、後者はC++は高度な最適化を支援するようになっているのでC以上に効率的なコードを出力することができるはずだということでした。

これを聞いて私は業務に直接活かすことができるのではないかと思い、早速コードの一部をC++に書き換えてビルドできるようにしてみました。Cよりも厳密な型付けが必要なのでいい加減なプログラムはエラーになってしまい多くの人が苦労するのが目に見えるようですが、その分コードの品質は上がるはずです。出力されるコードの効率も博士が言っていた通り心配するようなことはなさそうです。いまだに私の業界ではCが主流ですが、環境も整いつつあり今後C++化の流れも遅ればせながらあるので、その先陣を切っていくのも良いのではないかと思いました。