パーソナルビジネスソフトとお役立ち情報のサイト
C++とJavaの比較
(1/10)

(はじめに:訳者より)
本資料は、Bruce Eckel氏著述の「Thinking in Java」Revision 10の付録(Appendix B:)から同氏の了解を得て訳出したものです。
Bruce Eckel氏は、C++及びJavaを中心とした言語の分野で「Thinking in C++(Prentice-Hall, 1995)などの著述の他、各種専門雑誌の編集、寄稿、講演、セミナー、標準化委員会など広範な活動を展開されています。上記の「Thinking in Java」は同氏のホームページで無償でダウンロードすることができます。本資料の原文の他、同氏の経歴、セミナーの紹介もありますので、下記のURLホームページに是非立ち寄られることをおすすめします。

Eckel氏のホームページ


C++とJavaの比較(本文)
C++のプログラマとしてあなたは既にオブジェクト指向プログラミングの基本概念を理解しているでしょう。そしてきっとJavaの文法がとても身近に思えるでしょう。それは当然です。というのはJavaはもともとC++から由来しているからです。

しかし、C++とJavaには驚くほど多くの違いもあります。これらの違いはC++からの大きな改善を意図していて生まれたものです。その違いを理解することによりJavaがいかに有益なプログラミング言語であるかが理解できます。この附録はJavaをC++と際立たせる重要な特徴をまとめています。

1.潜在する最大の障害はスピードである。逐次解釈されるJavaはおよそCより20倍遅い。Java言語をコンパイルしない理由は何もなく、この原稿を書いている時点でもジャスト・イン・タイムコンパイラは大幅なスピードアップを実現している。一般的なプラットフォーム上で完全なネイティブコンパイラが現れることも考えられるが、これを前提としないとスピードの制限のためJavaでは解決のできない問題が存在する。

2.JavaはC++と同様に2種類のコメントを持つ。

3.全てはクラスに含まれなければならない。グローバル関数、グローバルデータは存在しない。グローバルと同等の処理をしたければ、クラス内にスタティックメソッド及びスタティックデータを定義しなければならない。構造体、列挙型はなく、クラスのみがある。