C++という名称は、単なる記号の組み合わせではありません。
この短い名前の中には、言語の成り立ち、設計思想、そして当時のプログラマ文化が凝縮されています。
ただし、その背景はしばしば簡略化されすぎたり、推測が事実のように語られたりしがちです。
ここでは、一次情報に近い事実を軸に、C++という名前の意味を整理します。
C++の前身は「C with Classes」
C++は、最初から「C++」という名前だったわけではありません。
開発初期、この言語は 「C with Classes」 と呼ばれていました。
この名称が示す通り、当初の目的は非常に明確でした。
- ベースはC言語
- そこに「クラス」という仕組みを追加する
つまり、「まったく新しい言語」を作るのではなく、Cを拡張するという発想です。
この段階では、まだ現在のような多機能な言語ではなく、Cの延長線上にある実験的な言語でした。
「C++」という名前を考案した人物
重要な点として、「C++」という名称そのものを考案したのは、C++の設計者である Bjarne Stroustrup ではありません。
この名前を提案したのは Rick Mascitti という人物です。
この点は、Stroustrup本人のFAQでも明確にされています。
したがって、
- 言語の設計:Stroustrup
- 言語名「C++」の命名:Rick Mascitti
という役割分担があった、という理解が正確です。
「++」が意味するもの
「C++」という名前の核心は、後半の 「++」 にあります。
C言語を知っている人にとって、「++」は特別な記号です。
これは インクリメント演算子であり、「値を1増やす」ことを意味します。
このため「C++」という名前は、次のように解釈できます。
- Cを否定するのではなく
- Cをベースに
- 段階的に進化させた言語
つまり、「Cをインクリメントした言語」 という意味合いです。
このネーミングは、Cの文法や文化を理解しているプログラマにとって、直感的に理解できるものでした。
なぜ「C+」ではなかったのか
一見すると、「C+」でも良さそうに思えるかもしれません。
しかし、これが採用されなかった理由は明確です。
- C+ はC言語の文法上、構文エラーになる
- さらに「C+」という名称は、別の無関係な言語で使われた例もあった
このため、「短いから」「意味が弱いから」といった印象論ではなく、技術的・実務的に不適切だったというのが一次情報に基づく説明です。
結果として、Cの文法に自然に溶け込み、かつ意味が明確な「C++」が採用されました。
「Cの正統進化」であることを示す名前
C++という名前が示しているのは、「断絶」ではありません。
- Cを捨てる
- Cを否定する
のではなく、
- Cとの互換性を重視し
- 既存のCプログラマが段階的に移行できる
という設計思想です。
この思想は、名前の段階から明確に表現されています。
「C++」は、「Cとは別物」ではなく、「Cの延長」であることを強く意識した名称なのです。
「C++++」は歴史的事実ではなくジョーク
「次はC++++なのか?」という話題は、C++界隈ではよく知られた冗談です。
ただし、これは正式な検討事項や歴史的事実ではありません。
Stroustrup自身は、命名に関してしばしばユーモアを交えた表現を使っており、「Cの意味論に詳しい人なら、++Cのほうが好ましいかもしれない」といった言い回しもしています。
重要なのは、
- 命名にはジョーク的要素が含まれている
- しかしそれは後付けの解釈や文化的文脈である
という点です。
「C++++にならなかった理由」を事実として断定するのは適切ではありません。
事実として整理した「C++という名前の意味」
ここまでを、事実ベースで簡潔にまとめると次のようになります。
- C++はCを拡張する目的で生まれた
- 初期名称は「C with Classes」だった
- 「C++」という名前はRick Mascittiが提案した
- 「++」はCのインクリメント演算子に由来する
- 名前は「Cからの進化的な変更」を示している
- 「C+」はCの文法上、構文エラーであり不適切だった
これ以上でも、これ以下でもありません。
補足:なぜ今もこの名前が生きているのか
C++という名前は、現代の感覚ではやや特殊です。
しかし、
- 言語の出自
- 設計思想
- 想定ユーザー
をここまで正確に表した名前は、実はあまり多くありません。
その意味でC++という名称は、技術史的にも非常に完成度の高いネーミングだと言えます。
以上、C++の名前の意味についてでした。
最後までお読みいただき、ありがとうございました。
