回答受付中の質問
1人が「このQ&Aが役に立った」と投票しています
回答(3件中 1~3件目)
オブジェクト指向言語としての設計のシンプルさ。Javaの最大の特徴は、言語設計をするとき、新しいものを「何も持ち込まなかった」ところにあります。既に広く浸透している仕様から必要最低限のものだけをピックアップし、きれいにまとめています。まぁ、昨今、だいぶ肥大化してきてはいますが、もっともオブジェクト指向言語として習得しやすい言語といえます。またメモリ管理などを深く考えることもなく、この点もC系言語に比べるとかなりとっつきやすいです。この「オブジェクト指向言語としてのシンプルさ」が、Javaを選ぶ大きな要因となっていると思います。
また、仮想マシンを用いた言語の中ではもっとも高速でしょう。JVMの改良により、現在、大半の処理はC++によるネイティブコードと変わらない速度で実行できます。ただし、仮想マシンとはいえませんが、移植性の高いC#が最近じわじわと浸透してきており、こっちのほうが速度面では更に上回る感じなので、この点での有意性はやや落ちているかも知れません。
JVMの実行環境自体がかなり小さなハードウェアまで対応できるため、最近では携帯端末への移植性の高さも評価されています。Androidは、正確にはJavaとはいえませんが、まぁ「Javaの亜流」として広く使われていますし、docomoのiアプリもかなり小さいハードウェアで動かすことができました。組込み系では、Cよりもはるかに開発が容易で、なおかつ異なるハードへの移植性も高いため、かなり使われるようになってきています。
エンタープライズにおいては、限定された環境でしか使えない.netに比べ、Javaの柔軟さは大きなメリットとなります。またフレームワークの充実は、多言語の追随を許さない部分があるでしょう。最近はPHPやRuby、Pythonといったライトウェイト言語がかなりエンタープライズ市場に入り込みつつありますが、安定性の面でJavaにはまだまだ追いつけない感があります。「PHPなんて怖くてエンタープライズで使えるか」という技術者は大勢いますから。
欠点は、……現在、最大の欠点は、「先行きが見えないこと」かも知れません。Oracleに移り、Java 7のリリースはかなり雲行きが怪しくなっています。「この先、あまりメンテナンスが期待できない言語」をどれだけの人が使い続けるか、ということを考えると、これが最大の欠点でしょう。また、PC用の開発においては、やはり仮想マシンを起動してロードするという方式が災いして、今ひとつ活用されていません。またGUIが独特で、ネイティブなGUIと違いが見えることもマイナス要因と見られているでしょう。
投稿日時 - 2010-12-22 08:26:42
Javaは、マルチプラットフォームを保証するため、仮想マシン上で動作します。
ですから、移植は簡単であっても、C++などと比べれば、処理速度は遅くなります。
聞いた話ですが、本来CやC++であってもいいものが、Javaで開発されていると言うことでした。
つまり、現実的にはOSを変えることなど、まず滅多になくJavaの優位性はさほど無いにも関わらず、闇雲にJavaが用いられているものもあるみたいです。
また、他の言語(Perl,PHP,BASIC系など)は、簡易言語であるため比較対象にはならないと思います。(特に大規模な開発の場合)
つまり、(たとえば)PHPでも充分であるならば、PHPでやればいいと言うことです。
使い分けは必要であっても、比較対象にはならないと思います。
あくまでも主観です。
投稿日時 - 2010-12-21 22:53:42
OKWaveのオススメ
おすすめリンク