アカウント名:
パスワード:
C++ はいろんなもの(OSからアプリケーションまで)が書ける点はいいのですが、どうしても C の影響を受けて、純粋なオブジェクト指向で記述ができなかったり、演算子やテンプレート(Generic)など複雑な仕様がわかりにくかったりしますよね。
その点 Java は、C++ から複雑な仕様を取り除いて簡単にしたため、理解しやすい言語になっていると思います。ここまではよく言われることなのですが、Java は様々な嫌な面も持っていて
やっぱりVMが立ち上がるまでの時間が長いのがちょっと許せないです。
いつも気になるのは C, C++, Java など一般的な言語はなぜ Method は複数の値を返せないんでしょうか?いや返値専用のクラスを作ってそれを生成させて返せば解決するんですけどわざわざそうしなくてもいいような気がします。(そんなに不便でもないんですけど(^^;)
まぁいろいろ不満はあるにしろだいぶ現実的に使える言語にはなってきました。Java 2 SDK 1.4 以降ではほぼ必要な API は用意されました。セキュリティやマルチメディア、グラフィック周りでこれほど充実した環境は多分ないと思います。あるとしたら Squeak あたりかな。
それから、
でも、一社が仕様策定を独占しているという状況はよくないと思う。
最近は JCK など仕様に関してオープンになっていますから、そう気にする必要もないでしょう。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
未知のハックに一心不乱に取り組んだ結果、私は自然の法則を変えてしまった -- あるハッカー
C++, Java の長所短所 (スコア:1)
C++ はいろんなもの(OSからアプリケーションまで)が書ける点はいいのですが、どうしても C の影響を受けて、純粋なオブジェクト指向で記述ができなかったり、演算子やテンプレート(Generic)など複雑な仕様がわかりにくかったりしますよね。
その点 Java は、C++ から複雑な仕様を取り除いて簡単にしたため、理解しやすい言語になっていると思います。ここまではよく言われることなのですが、Java は様々な嫌な面も持っていて
Re:C++, Java の長所短所 (スコア:1)
やっぱり、僕がJavaを使ってみて一番ストレスに感じたのは、処理系と実行環境の遅さでした。非GUIアプリケーションでは一回VMが立ち上がってしまえば速度的にはあまり問題がないんですが、やっぱりVMが立ち上がるまでの時間が長いのがちょっと許せないです。
あと、最後に挙げられた短所ですが、僕も全部長所だと思っています。
Re:C++, Java の長所短所 (スコア:1)
ははは、確かに。でも JIT や HotSpot VM がない状態だと結構早いんですよ。たとえば J2ME CDC, CLDC な環境だと、CPU やリソースがかなり貧弱でもまぁまぁ起動も速いし、スピードもまぁまぁです。たぶん VM だけの問題ではなくて、膨大な API 郡をメモリに展開するのに時間がかかってるんだと思いますが(笑)。いつも気になるのは C, C++, Java など一般的な言語はなぜ Method は複数の値を返せないんでしょうか?いや返値専用のクラスを作ってそれを生成させて返せば解決するんですけどわざわざそうしなくてもいいような気がします。(そんなに不便でもないんですけど(^^;)
まぁいろいろ不満はあるにしろだいぶ現実的に使える言語にはなってきました。Java 2 SDK 1.4 以降ではほぼ必要な API は用意されました。セキュリティやマルチメディア、グラフィック周りでこれほど充実した環境は多分ないと思います。あるとしたら Squeak あたりかな。
それから、
これは確かに気になるでしょうね。でも Sun が一時期独占したからこそ現在の地位があるとも言えます。最近は JCK など仕様に関してオープンになっていますから、そう気にする必要もないでしょう。Sun は Java そのものでは儲かっていないようですが、J2EE などもう標準になっていますし、それを動かす標準的な Solaris 8 の地位は上がっていると言えますし、別のところで利潤を感じているので Java を独占することはもうないでしょう。Re:C++, Java の長所短所 (スコア:1)
返り値の話については、C, C++の場合、「関数」という概念から考えるとしょうがないのかなぁという気もします。
今のJavaはAPIが充実してますねぇ。僕はJava2が出たころくらいまでしか分からないですが、コンテナクラスが充実していて非常に便利でした。Swingも、速度を除けば(ここが結構重用だったり...)非常に扱いやすいですし。ただ、僕の場合は研究上3Dグラフィックスをよく使うので、Javaの3Dグラフィックス周り(Java3D)の仕様およびパフォーマンスには不満ありです。Javaを使う上では、ポータビリティがパフォーマンスより優先すると思うので仕方ないかもしれませんが、特定のハードウェアの拡張機能が使えなかったりするのが致命的です。ということから、C++をメインに使っています。
これ、知りませんでした。最近はオープンになっているんですねぇ。数年前、Java2APIのバグに悩まされた経験があって、開発がオープンでないことが非常に恨めしかったです。BugParadeのTop10に入っていたバグなのに、修正が採り入れられたのはJDK 1.4で、約二年もかかりました。さすがにこれには懲りてしまいました。