質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.50%

  • Java

    13795questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • C

    3694questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

JAVAの「Write once, run anywhere」って大体の言語がそうなのでは?

解決済

回答 5

投稿

  • 評価
  • クリップ 0
  • VIEW 618
退会済みユーザー

退会済みユーザー

Pythonで書かれたプログラムはPythonのある環境で動きますし、Cで書かれたプログラムはCのある環境で動くのでは?
JAVAだけ強調されてるのは何故ですか?

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • 退会済みユーザー

    2018/07/13 09:48

    複数のユーザーから「問題・課題が含まれていない質問」という意見がありました
    teratailでは、漠然とした興味から票を募るような質問や、意見の主張をすることを目的とした投稿は推奨していません。
    「編集」ボタンから編集を行い、質問の意図や解決したい課題を明確に記述していただくと回答が得られやすくなります。

回答 5

checkベストアンサー

+4

コンパイラが生成したバイナリがどこでも動く。
コンパイラ:javacが吐いたバイナリ:~.classは(原則)マシン/OSに依存しない。

Cなんかだとマシン/OSに依存したバイナリを吐くため、たとえばLinux/gccでコンパイルしたものはWindowsでは動かない。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/13 16:03

    >コンパイラが生成したバイナリがどこでも動く。
    これってメリットなんでしょうか。
    Cなんかには大体コンパイラ、クロスコンパイラがあるでしょうしJAVAだって特定のマシン/OS用のJVMがないと動かせないわけですよね。
    だったらC,C++でもいいんじゃないかという気がします。

    キャンセル

  • 2018/07/13 16:11

    今は、仮想環境やクラウドの環境が充実していますし、開発時にも複数のOS環境で開発することが簡単に出来ますが、昔は開発環境のOSというと決まったものしかなくて、おそらく今の開発者が想像できないくらいコンパイルするということにコストがかかっていたのではないかと思います。そういう環境の前提で提唱された当時は夢のようなことだったのでしょうね。

    キャンセル

  • 2018/07/13 18:47

    デバッグに実機を必要としないのは大きなメリットですよ。

    キャンセル

+4

もともと Java が登場する前は、C/C++ が主流でした。
Java の「Write once, run anywhere」は、まさに C/C++ に対するアドバンテージとして喧伝されたものです。

C/C++ はコンパイルにより、機械語に変換された状態で提供され、実行されます。つまり環境に強く依存するのであり、別環境に持っていくにはその環境に合わせてビルド(コンパイル・リンク)する必要があります。
※当時でも IBM 360 シリーズのように、ハードウェアが(CPUアーキテクチャレベルで)異なっても同じプログラムが動く環境はあるにはありました
Java はそこに、「コンパイルは一度だけ、できたものはどこでも動かせる(Java Runtime さえあれば)」という世界を提示したのです。

もっとも、このために Java Runtime を経由する分、速度面で不利になります。特に初期の Java Runtime は、コンパイルではなくインタプリタ(Javaマシンのエミュレーション)だったので、非常に遅かったです。
Java が実用的になったのは、Just In Time コンパイルにより、実行中に機械語に変換することで速度面で遜色がなくなってからです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

PHP,Perl,Ruby,Pythonなどはコンパイル言語ではないのでソースコードさえあれば動きますが、Javaの「Write once, run anywhere」はコンパイル言語(おそらくその当時の言語としては C言語)に対してのプロパガンダだと思いますよ。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

これは、動作コンピュータごとのコンパイルが不要という意味です。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

解決済みのようですが。一応。

Javを作ったのは、UNIX屋であるSunです。
UNIXは主にサーバーで使われている、元々機種に依存し難い世界でしたが、
CPUの違いやらライブラリの差異を吸収する為に、それぞれの環境でコンパイルし直していました。
なので、C/C++への対抗で「Write once, run anywhere」とSunが宣伝していただけのものです。

ただ、当たり前ですが、クライアント系環境なぞは違いがありまくりの世界ですから、そんな訳はありません。
無理にやろうとしたら、PCでも携帯でもどこでも使える機能しか出来ません。
同じデスクトップPCでもWindows, Linux, Macで色々差異があるので、
どの環境でも動くようにすると、それぞれの環境特有の機能が使えない、数段使えないアプリにしかなりません。

ちなみに、この「Write once, run anywhere」に騙された有名どころがジャストシステムです。
ワープロで最大シェアを誇っていたのに、全てをJavaで書き直す!なんて言い出して、
結局、テキストエディタに毛が生えた程度のものしか作れず、
騙されたと気づいた時には、マイクロソフトに市場を奪われた後でした。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.50%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    例外処理を利用する意味、メリットについて質問です。

    例外処理を利用する意味、メリットについての質問です。 言語に依存しないと思いますが、例としてPythonの例外処理でゼロ除算の例外処理を行うZeroDivisionError

  • 解決済

    戻り値あり、戻り値なしの使い分けについて

    基本的な質問かもしれませんが、メソッドで戻り値ありの場合と戻り値なしの場合の使い分けは どのようにすれば良いのでしょうか? 現状メソッドで処理した値を他の部分で用いたい場合には

  • 解決済

    これからプログラミング言語

    これからプログラミング言語を学ぶ初心者です。 これからの社会を見据えて、どの言語がいいと思いますか? 僕はRubyを学んでみようと考えてます。 いずれ趣味でアプリや人

  • 受付中

    画像認証を

    すみません、質問お願いします。 画像認証を自動的に突破する事はできますか? 具体的に あるサイトで入力必須情報を入力した後、最後に画像認証があります。 この一連の流れを何回

  • 解決済

    実行可能で処理が軽いGUIを作ることができる言語を教えてほしい

    GUIを作れるようになりたいと思って今勉強しようとおもっています。 しかしシミュレーション用のGUIを作りたいと思っているので、なるべく処理が早く数学的な加工が得意な言語でやりた

  • 解決済

    サーバーサイドのプログラミングとは。

    今年からプログラミングを学び始め、現在swift歴3ヶ月です。 テックアカデミーでswiftを学び、最近初めての仕事をもらえることになりました。 しかし仕事を探す中で疑問に思っ

  • 受付中

    プログラミング言語の変更について

    AIや機械学習に興味を持ち、Pythonをはじめてのプログラミング言語にしたのですが AIや機械学習を本格的に行うには、能力的な意味で当面不可能であると感じています。 その為、

  • 解決済

    ファイル操作においてJavaがPythonよりも遅い

    いつもお世話になっております。 Postfixのキューを生成するツールをCで作成したので、ついでにJavaとPython(2.7)で同じ動きをするスクリプトを作成しました。

同じタグがついた質問を見る

  • Java

    13795questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • C

    3694questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。