私がC++を勧める7つの理由

学生の頃いたサークルの集まりになんだか参上してしまいました。で、止せばいいのに、開発中のプログラムを見せてみたり。

後輩連中は「プログラム始めたて」みたいな感じで、「始めて数年」ってのが混じっている感じだったようだ。それで、その数年選手が「これってOOP(オブジェクト指向プログラミング)で書いてるんですか?」って聞いてきた。やっぱりなぁ、って感じ?プログラムを書き始めて数年経つと誰しもOOPの必要性を感じるようだ。嫌でも目に付く単語だからねぇ。それで、「OOPってのはプログラムの品質を上げるためのものなんだけど、OOPを使うと品質を上げやすいって云うだけで必ず品質が上がるわけではない。OOPを使わなくても品質は上げられる。だから、無理に覚える必要は無いよ。」と、今思っていることを素直に口にした。まあ実感としては伝わってないと思う。どう伝えたらいいのかな。

私は、C言語でプログラムを本格的に学習して、数年してOOPの機能を持ったC++に移行した。理由は「継承」が便利だったからだ。「継承」ってのは、OOPの中で、プログラム作成のための便利機能として付与されている概念で、使うとスゴク便利なのだが、実は便利さ故にワナもあって、無闇に使うと酷い目を見る。それで最近の言語では継承にかなりの制限がしてあって、無謀による失敗を避けることを促している。それとは対称的に、C++はかなり自由で大変便利に使える。そして、失敗するのだ。失敗した。C++を導入し始めてさらに数年して、継承の濫用で痛い目を見まくった私は、「カプセル化」といった品質を上げるための概念にようやく目を向けるようになりましたとさ。めでたし、めでたし。

C++にはその他、大変便利な機能満載で、そしてそれらの大部分が便利さ故の罠を剥き出しにして置いてある。その辺が嫌われている理由なんだけれでも、痛い目を見ないと学習をしない人間…私なんですが…が学習していくには悪くない言語だったのかなぁ…と思ってますがどうか。