
Pythonで書かれたプログラムはPythonのある環境で動きますし、Cで書かれたプログラムはCのある環境で動くのでは?
JAVAだけ強調されてるのは何故ですか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答5件
0
もともと 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 コンパイルにより、実行中に機械語に変換することで速度面で遜色がなくなってからです。
投稿2018/07/12 23:55
総合スコア13707
0
ベストアンサー
コンパイラが生成したバイナリがどこでも動く。
コンパイラ:javacが吐いたバイナリ:~.classは(原則)マシン/OSに依存しない。
Cなんかだとマシン/OSに依存したバイナリを吐くため、たとえばLinux/gccでコンパイルしたものはWindowsでは動かない。
投稿2018/07/12 22:12
総合スコア16612
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

2018/07/13 07:11

0
解決済みのようですが。一応。
Javを作ったのは、UNIX屋であるSunです。
UNIXは主にサーバーで使われている、元々機種に依存し難い世界でしたが、
CPUの違いやらライブラリの差異を吸収する為に、それぞれの環境でコンパイルし直していました。
なので、C/C++への対抗で「Write once, run anywhere」とSunが宣伝していただけのものです。
ただ、当たり前ですが、クライアント系環境なぞは違いがありまくりの世界ですから、そんな訳はありません。
無理にやろうとしたら、PCでも携帯でもどこでも使える機能しか出来ません。
同じデスクトップPCでもWindows, Linux, Macで色々差異があるので、
どの環境でも動くようにすると、それぞれの環境特有の機能が使えない、数段使えないアプリにしかなりません。
ちなみに、この「Write once, run anywhere」に騙された有名どころがジャストシステムです。
ワープロで最大シェアを誇っていたのに、全てをJavaで書き直す!なんて言い出して、
結局、テキストエディタに毛が生えた程度のものしか作れず、
騙されたと気づいた時には、マイクロソフトに市場を奪われた後でした。
投稿2018/07/14 07:54
編集2018/07/14 07:55総合スコア191
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
これは、動作コンピュータごとのコンパイルが不要という意味です。
投稿2018/07/12 23:04
総合スコア4853
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。