• ベストアンサー

Javaは「遅い」??

今から5年ぐらい前に勤めていた会社で、 自称C言語開発者の同僚が、「Javaは遅いからな~」と得意げに言っておりました。 おそらく、同僚としては何かしらの根拠があってそのような事を言ったのだと思いますが Javaを「遅い」と言う根拠には、どのようなものがあったと想定されますか? (Javaに対する偏見も当然あったと思いますが。) 具体的に教えて下さい。

  • Java
  • 回答数4
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • ok-kaneto
  • ベストアンサー率39% (1798/4531)
回答No.1

VMで起動する、いわゆる「中間言語(バイトコード)」だからでしょう。 http://ja.wikipedia.org/wiki/%E3%83%90%E3%82%A4%E3%83%88%E3%82%B3%E3%83%BC%E3%83%89 当時はVMを起動させるだけで一手間でしたし、VMのインタプリタが遅かったですからね。 しかし、今ではVMの最適化やJITの導入もすすんできましたし、Javaでパフォーマンスをどうこう言うのは減ってきているとおもいますよ。 たぶん、C言語でMFCでゴリゴリ書く人だったんでしょう? そういう人は偏見を持っていることも多いですからね...

その他の回答 (3)

  • shiren2
  • ベストアンサー率47% (139/295)
回答No.4

Javaはまあ、遅いですよ。 問題は起動速度(立ち上がり)ですね。 ですから、重量級のアプリケーションだとタスクバー(バックグラウンド)に常駐させておいて、立ち上がりの遅さをフォローしているわけです。 確かWindowsのJREにもその機能があったと思います。 一度起動してしまえば、意外と速いですよ。 今はどうか知りませんが、TwitterにJava製のサーバーが選ばれた事実からも、かなり高負荷な処理を捌けることが分かると思います。 http://blog.s21g.com/articles/635

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.3

「Java」「c」「速度」でググってみればいくらでもこの種の話題について出てきますよ。 個人的には、 http://d.hatena.ne.jp/kwatch/20100430/1272585083 にあるよぅに、コンピュータ言語には適材適所というものがあるということが正しいと思います。 cでフルスクラッチで何でも書くよりもPerlやRubyで書くほうが圧倒的に生産性高いですから。

  • NNori
  • ベストアンサー率22% (377/1669)
回答No.2

根拠もなにも、それは自明です。 高級言語は、いろいろなことができる反面いろいろなことをやるので当然遅くなります。 例えばJavaはメモリの解放を自動でやってくれます。自動でやってくれるということは自動でできるように裏で計算しているということです。つまりその分遅くなるんです。これは言語の仕様ですからどうしようもありません。 プログラムは遅くても必要な時間内に終わればなんも問題ないのです。例えばCで開発すると100万円のハードウェアで動くけどJavaで開発すると200万円のハードウェアでないと終わらないとします。 でも開発費がCは500万円かかってJavaだったら300万ですむとしたら、トータルでJavaのほうが安く済みますよね。この場合はJavaのほうが安くすむのでいいんです。 でも同じ条件でハードウェアを10か所に導入する必要があればどうなります?Cのほうがトータルで安くなってしまうでしょ?なので適材適所の対応が必要なんです。

関連するQ&A

  • Cで作られたDDLをJAVAで

    初歩的な質問で申し訳ないです。 現在配属しているプロジェクトでは、サブシステムが2つに分かれており、C言語で開発されたシステムとJAVAで開発されたシステムに分かれております。(業務が違いシステム的にも関連はありません) しかし、共通で使えそうな計算ロジックをコーディングしたDDLがC言語のシステムの方にあり、JAVA側でそれを使いまわしできないか?と言うことを言われました。 ネットで調べた所、JNIという技術を用いて可能かも?とは思ったものの、ネットの内容を見ると、JNIの説明の所に載っているC言語のソースにはJNI用に組まれたような(JAVAで用いる事を想定されて作られているかのような)ロジックがあるため、 結局既存のDDLは使えなく、JAVA用に作成しなおさないといけないのかな? とも思いました。 そこで質問ですが、もともとC言語のシステム内で使うことを想定されたDDLをJAVA側のシステムで使う場合、JAVA用に再作成せずに使うことは可能なのでしょうか? 初歩的な質問で申し訳ありませんが、知っていたら教えて頂きます様、宜しくお願い致します。

  • JAVAで大丈夫?

    学校でJAVAを習っていて、だいぶプログラムも組めるようになってきたのですが、最近ほかの質問などを見ていてJAVAだけで大丈夫なのかと思うようになってきました。学校の教授は「これからはJAVAだ。」と言っていますがやはりJAVAだけでなくC言語やC++もやったほうがよいのでしょうか? ちなみに将来はプログラマーになりたいと思っています。意見を聞かせてください。よろしくお願いします。

    • ベストアンサー
    • Java
  • java

    java言語開発環境JDKをインストールしてjavaでプログラムを作って、コンパイルをしたのですが、javacが認識されていません。内部パッチ、外部パッチがないといわれるのですが全然分かりません。教えてください。

  • JAVAの利点ってなんですか?

    JAVAの利点ってなんですか? CやC#やとくに.NET Frameworkの概念とは、なにが違うんですか? .NET Frameworkが言語にこだわらないでVisual Basic/C++/C#でも可能(?)と言うのは説明を読んだのですが、用はどのOSでも使えるJAVAの仮想マシンに似ている概念なんですよね? という事はJAVAの利点と同じような利点がCにも加わったって事ですか? ここで少し調べましたが、今ひとつ分かりませんでした。 調べた中で、JAVAの仕事が多いというのは分かったのですが、なぜCやC+とかではなく、JAVAなんでしょうか? JAVAは家電製品のプログラムも可能と聞きました。 その需要が多いって事なんでしょうか? JAVAの利点ってなんですか?

    • ベストアンサー
    • Java
  • 一口にJavaと言っても・・・

    お世話になります。 Javaで開発~ってことを耳にしたりするのですが、 一口にJavaって言っても、何種類もあってよく違いが分かりません。 (JavaとJavaScriptは違うって事はわかります) 1:Javaアプリケーション 2:Javaアプレット 3:Javaサーブレット 4:JSP これらの違いってどこにあるのですか? WEB上で動くアプリケーションを開発したい!ってなった場合、 どれを選択すればよいのでしょうか? また、上記以外にもJavaの種類がありましたら、 ぜひ教えてください。 よろしくお願いします。

    • ベストアンサー
    • Java
  • WindowsでのJavaについて

    こんにちは。 OSは現在、32bit版のWindowsVista(SP2)と、64bit版のWindows7を使っています。 今回、最近のWindows系OS上で、Javaがどういった事を行っているのかが知りたくて、 投稿させて頂きました。 以下で、いくつか質問させて下さい。 ・Windows上で、Javaの行う事は? 僕のPCでは、"C:\Program Files\Java"以下に、Java開発環境がインストールされています。 ですが僕は、一度もJavaプログラムを作って、走らせたりしたことがありません。 それなのに、Windowsでは、Javaのアップデートの通知がよく来ますし、 どうやら、Javaがないと上手く動作しないプロセスも存在するようです。 Windowsのアプリケーション層以外のところで、Javaは何かやっているのでしょうか? それとも、特定のアプリケーションを動作させるために、Javaが必要なだけでしょうか? ・仮想計算機とは? Javaについて調べてみると、「仮想計算機というものを使って、同じプログラムをいろいろな種類の計算機で動かす事ができるのが特徴である」といった意見が多かったです。 この説明で、「同じプログラムをいろいろな種類の計算機で動かす事ができる」 というのは、Cといった言語にも言えることです。 では、Cプログラムも、この「仮想計算機」(Windowsのコマンドプロンプトのようなものの事かな?)というものを使っているからこそ、様々な計算機上で、動かす事ができるのでしょうか? それとも、JavaプログラムとCプログラムの、OS上での実行のされ方は、 異なるのでしょうか? ・JavaScriptプログラムは、Windows上でどのようにして実行される? インターネット上で、特定のサイトを見る場合に、「JavaScript」をインストールしなければならない時があります。 この「JavaScript」は、"C:\Program Files\Java"以下にインストールされている、 Java開発環境とは、全く独立したものらしいのですが、 JavaScript開発環境が、どこにインストールされているのかが分かりません。 JavaScriptプログラムは、Windows上でどのように動作しているのでしょうか? 以上の件について何かご存知の方がいらっしゃれば、是非教えて頂きたいと思います。 では、よろしくお願い致します。

  • JAVA の特徴

    サンが開発したJava、Java2 がネットワーク言語としてスタンダードになっているようですがその理由についてご教示ください(当方素人同然のコンピュータ知識です)。 WIKIPEDIA などでは「Cをもとに開発され、ネットワークに適している」といった説明がなされていますが「なぜ」ネットワークに適しているのかが理解できません。 例えば FORTRAN なら「複雑な計算のサブルーチンに簡単に入れるコマンドがあるので技術計算に適する」といった浅学者でもスカッ!とわかるような説明がありがたいです(そもそもネットワーク言語なる概念がわかっていません)。

  • JAVAの著作権って?

    素朴な疑問ですが、よくJAVAで作られた作品やソースが販売されていますが、それらを販売する人(法人)は、元々JAVAという言語を開発した人?に著作料を払っておられるのでしょうか。それとももともとJAVA自体がフリーで公開されたものなのでしょうか?ご存知の方教えてください。

  • Javaでクライアントアプリを作るメリット・ディメリット

    Windows上でアプリケーションを作る勉強をしようと思っています。 Javaにすべきでしょうか?C#にすべきでしょうか? 「Java言語はクライアントアプリ開発のメジャーになれるか?」 http://headlines.yahoo.co.jp/hl?a=20041009-00000003-zdn_ep-sci を読むと、Javaの未来もバラ色に見えます。 メリットとディメリットを教えて頂けないでしょうか?

    • ベストアンサー
    • Java
  • Javaを習得するお奨めの本・HPは?

    私はjava初心者です。 C言語やVBも経験がありません。 経験があるのは20年前に流行ったBASICのみです。 こんな私がJavaでプログラミングしたいと思うのですが、お奨めの書籍や雑誌、ホームページがありましたら紹介してください。 どういうプログラムを作りたいかというと、最終的には受注データから簡単にガントチャートを引けるような工程計画プログラムと、子供のためにトーマスを主役にした線路ゲーム(よくレールを時間内に組合さなければ脱線するというようなゲーム)です。 具体的な目標がなければ、お奨めの本やHPもわからないと思い書いたのですが、基本的にはJAVA言語を習得できるものならなんでもいいです。 BASICなら理解できていたのですが、関数型のC言語や、クラス型のC++やJAVAになると理解できなくなってしまいました。 ましてやオブジェクト指向なるものは? よろしくお願いします。

    • ベストアンサー
    • Java

専門家に質問してみよう