C++の設計と進化

RubyマガジンのC++に関する記事がとてもおもしろいです。
書いているのはRuby作者のまつもとさんですが、自他共に認める言語おたくとして鋭い洞察をされています。


 私がプログラマーなりたてのころちょうどC++がはやりだして新しもの好きなエンジニアが少しづつ使い出してきた状況でした。
(当時、会社で使っていたのは私だけでしたが。)
当時はオブジェクト指向というものを理解している人が少なかったので言語だけあってもどうやって使ったらいいいのかわからない状況でしたね。
 それから15年ほど経ってみると知らない間に結構使える言語に進化しています。
評判の悪かった多重継承もSTLやBoostといったライブラリが整備されることによって使い勝手の悪さが克服されています。
総称型という仕組みも私がC++を使っていた頃は無かった機能です。
総称型とはコンテナのようなしくみで例えば複数の文字列をソートしたいのだけれど英語がくるか日本語がくるかわからないという場合、複数の入れ物を用意してそれを並べ替えるロジックのみ書いて中に入れる文字データによらず並べ替えるといったときに使えます。
(いい例だったかな?)


 C++が一世を風靡した当時はこれからのメジャーな開発言語として期待されていましたが、今となっては選択肢のひとつになってしまいました。
C++の強みはなんといってもプログラムの実行速度です。
コンパイル型言語でCとの親和性が高いのでマシンの性能をフルに活用できます。
 しかし、今はスクリプト言語などで作ってプロファイラーなどで処理の重い部分だけを特定してその部分をCで書くという方法で結構いいパフォーマンスを出すことができます。
 そう考えるとC++って中途半端なポジションになってしまうんですよね。
Javaもそうですが、ひとつの言語ですべてを行うという考え方がいまや古くなってしまったのでしょうね。


 10年一昔といいますが、開発言語を見ると残っているもの、なくなったものそれぞれあって感慨深いものがあります。
私はいまはRubyPerlなどのスクリプト言語を使うことが多いですが、Cもシンプルさが好きです。
最近はLispHaskellなどの関数型言語Javascriptが結構好きですね。
JavaやMS系の開発言語は正直あまり好きではないですが、他の開発者とコミュニケーションするためにはある程度知っておいた方がいいかなと思っています。
 言語って趣味の問題ってところもあるので好きなものが使えるのがいいでしょうね。
そして、多言語とのインターフェースをちゃんと作っておくとチームでも仕事がしやすいと思います。


まーツールも大事なんですが、もっと大事なのはそれを使って何を作るかですね。
それを考えないと。

C++の設計と進化C++の設計と進化
ビョーン ストラウストラップ Bjarne Stroustrup 岩谷 宏

ソフトバンククリエイティブ 2005-01-19
売り上げランキング : 160919
おすすめ平均

Amazonで詳しく見る
by G-Tools