JavaよりC++でいこう。
京大 理 KONOEコラボレーション
JavaとC++の比較
オブジェクト指向言語(のようなものも含む)として今日広く普及してきた二つの言語に
ついて考えてみる。
JavaとC++は全く別の言語
ワークステーション・PC関連分野で今日もっとも広く普及している
言語であるC言語を背景に持つ意味では共通であるが、全く異なる
観点から設計された言語である。
C++
-
- C言語の拡張。互換性の維持。
- システム記述言語としてのC。UNIXシステムサービス。
- Higher Level Language。高級言語ではない。
- ポインター。PDPアーキテクチャ。
- 計算機プログラムとしてできないことはない。危険な言語。
Java
-
- ネットワーク時代の言語。
- プラットフォーム独立。
- Java仮想マシン。バイトコード。
- 標準的なクラスライブラリ。
- セキュリティ。機能制限。行儀のよいプログラム。
使われるべき領域が明らかに異なる言語。どちらかが優先される
ものではない。
JavaとC++は仲が悪い。
同じオブジェクト指向であるが、相互に全く互換性がない。
JavaがC++コードを呼び出すことは可能であるが、クラス定義や
オブジェクトの参照など共通性は全くない。共通性を持たせる
こともできない。
それぞれが定義したクラスオブジェクトの間で通信することに
より初めてオブジェクト共有が可能。
- オブジェクト通信機構が必要
- オブジェクト交換バス。Object Request Broaker
- 永続オブジェクト
- プログラムの存在期間を越えて生き続けるオブジェクト。
JavaとC++の共存。
KONOEのアプローチ
KONOEの詳細についてはhttp://konoe.kek.jp/konoe/を参照のこと。
そこでは、C++とJavaの両方を採用する。どのようにすみ分けるか。
DAQスタッフはC++で。
-
- データ収集インターフェース
- システムリソースへのアクセス。
- JavaよりC++でいこう。
UIはJava Appletで。
-
- ユーザが操作方法を知っている。
- 共通のグラフィカルユーザインターフェース
- C++よりJavaでいこう。
解析スタッフはC++かJavaか。
-
- KONOEではC++を採用。
- ユーザがプログラムを書く部分。
- 「経験のある言語」JavaよりC++でいこう。
結論
- C++よりJavaでいこう。
- JavaよりC++でいこう。
最適の技術を選択して安くていいものを作る。
...
(なんだあ。つまんない結論だなあ。)
...
FORTRANに代わる高エネルギー標準言語は必要。現状ではC++?