JVMがWindowsから消滅しました。標準搭載されなくなりました。

Javaがその最も巨大なプラットフォームを喪失した限り、
発展性を望むのは一挙に難しくなったと予想します。
また、なんといってもまったく同類にして将来性豊かな
C#が登場してしまいました。
(Javaは『標準言語』として認められませんでしたが、
 C#はECMAに『標準言語』として認められました。
 その裏にいかなる事情があろうともこの結果は事実。)

また、一度かけばいかなるプラットフォームで動くと言う
ジャバの特性はもはや失われているような気もします。

ミッションクリティカルなJSP/Servlet系と、携帯機のアプレット
に収束しており、2つは互換性がないと言えます。
JVMの利点などもはや消失しており、普通のコンパイル
言語になった方が良いのではないか? と思うほどです。

そこで改めてお伺いしたいのですが、はっきり言って、
Javaの今後は先行き暗いですか? 明るいですか?

(今現在、仕事が取れる取れないではなく、5年後を軸として、
 言語勢力バランスとして今より繁栄しているか、衰退しているかです)

このQ&Aに関連する最新のQ&A

A 回答 (6件)

> Javaは『標準言語』として認められませんでしたが、


理由があって、Sunが標準化を断念したようですね。

http://java.nikkeibp.co.jp/Java/News99/1209Sun.s …

C#については、まだまだ何とも言えない感じはあると思いますが、
Linux陣営も、.Netライクな開発環境を考えているという話も
あります(もちろんオープンソース)。
そもそも、Javaの主要なコンセプトであるプラットフォーム非依存も、
ハッキリ言ってそれほど大きな利点という印象がありませんし、
当初話題になったアプレットは、ほとんど見かけません。
Javaが安泰という確証は、確かにないと思います。

ただし、Javaは比較的習得しやすく、すでに多くのユーザを
獲得しているようです。
一方で、これから出てくるC#は、C++、Javaに対してどれだけの
アドバンテージを獲得できるのでしょう?
そういう点を加味して考えると、C#のせいでJavaが衰退という
ことはないような気もします。
    • good
    • 1

>Javaがその最も巨大なプラットフォームを喪失した限り、



サーバ系ではむしろWindowsが衰退傾向にあるように
思います。

各国の政府系のコンピュータサーバはWindowsをやめて
Linuxなどを採用するところが増えてきています。
(理由はウィルスに対する脆弱性と、米国の一企業に
 自国のサーバの運命を任せる危険性からのようです。
 12/5付けの電波新聞より。)

Javaであれば、LinuxだろうがWindowsだろうが動作します。
ネットワーク関連の機能も充実していますし、
サーバ関連では生き残るのではと思います。
    • good
    • 0

率直に言って、誰にも推測できないと思います。



技術は様々な分野で呼応しながら進歩していくので、その作用は非常に複雑
です。それ故、正確な進歩の方向を見据える事はできないでしょう。
それができた人が億万長者になれる訳ですが、そんな人はごくまれであるか、
賭けをした人でしょう。

個人的な意見としては、Java はそんなに衰退しない、もしくはこの程度の状
態が続く気がします。確かに、特定のプラットフォームに向けてコンパイル
した方が実行速度・特化性の点で非常に優れていますが、プラットフォーム
を超えて実現しなければならないソフトの場合は、ワンス~は非常に便利です。
(個人的な開発の体験からしてもそう感じます)
コンピュータの実行速度は高速化の一途ですから、プラットフォーム毎に
インタープリットしたとしても、その速度は普通のソフトならさほど感じな
い様になるでしょう。

反面、数学的処理などでは、先の実行速度・特化性を重視しますから、そう
いった分野では、Java は繁栄しないと思います。
    • good
    • 0

補足です。


1の回答の方が正確だと思います。

しかし、今後、家電をネットでつないで制御
するようなことがあれば、インターネットに
強い言語(ぷラットファームを選ばない)
という理由で選ばれるかもしれません。
    • good
    • 0

http://www.zdnet.co.jp/news/0007/12/b_0711_01.html
http://www.wired.co.jp/~mac/book/ihb8.html

Javaの先については、なんとも言えないと思います。
上記のアドレスをご覧になれば、WindowsがJavaをサポートから外した
理由がわかるかと思います。
(個人的にはトップの横暴にすぎないと思います)

ただ、Visual C#は、文法をJava風にしただけで、
結局、Windows対応のソフトしか作れないような
気がします(実際には触ってない)

以下は独断と偏見ですが・・・(間違いもきっとある)

普通のコンパイル言語になればいいのではないかという意見ですが、
Javaにあって、コンパイル言語にはない特徴としては

どのようなプラットフォームでも、仮想的なマシン(VM)となる
ソフトがあれば、その上で動く事ができる点ではないかと思います。
(マイクロソフトはそれを無視した)

コンパイラは、直接機械語に変換するので、できたソフトは
特定のプラットフォームでしか動きません。
(Windows用コンパイルはWindows専用、
   Mac用コンパイルはMac専用、
    JavaはVMさえあればどっちもOK)

PCのシェアは失ったかもしれませんが、炊飯器などに搭載される
マイコンをJavaソフトで制御するという考えもあるようです。

よって、

他の色々な言語と共存しながら、ずっと先まで
しぶとく残っていくと思います。
    • good
    • 0

制御系組込みソフトの開発をしている者です。



> はっきり言って、Javaの今後は先行き暗いですか? 明るいですか?

おっしゃるように、携帯のアプレットなどの限られた分野では今後も成長していくのかも知れませんが、一般的な応用で C/C++ に取って代わるようなことは、おそらくないでしょう。

私は C 言語をもう20年ほど使っていますが、装置制御の組込みソフトやツール開発としての応用に限って言えば、Java には何の魅力も感じられません。
Java は、C/C++ に比べて危険な処理(ポインタ等)ができないように設計されており、「進歩した安全な言語」なのかも知れませんが、逆に言えば(性能面で)「いざという時の融通が効かない」ということになります。
組込みソフトの世界では、リアルタイム性(=処理速度)が命ですので、C/C++ でポインタなどを駆使して最大限の性能を出してもまだ足らず、アセンブラ言語もどんどん併用しています。この事情は、いくら CPU 速度が上がろうと、製品への性能要求もそれにつれて上がるので、今後も変わらないでしょう。

「プラットフォームを問わず動く」と言われても、それはあくまでも JVM を積んでいて、かつハードウェアインタフェースが標準化されていればの話であり、多品種少量生産の組込みソフトの世界では、こんな環境はとても望むべくもありません。

という訳で、Java は「すべての応用に使えるこれからの汎用言語」と期待するのは、少々無理があると思います。
JVM との組み合わせで、上記のような限定された環境でメリットを発揮するような使われ方をしていくのではないかと思います。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qjava アップデート後の旧バージョン削除の件

javaのアップデートで質問です。javaのアップデートをインストールし行いました。インストール後、旧バージョンは削除したほうがよいとコメントがありました。パソコンのコントロールパネルを開き確認したところjava7update51(バージョン7.0.510)とjava7update60(バージョン7.0.600)があるのですがどちらを削除したらよいでしょうか?windous8でパソコンは初心者レベルです。宜しくお願いします。

※OKWaveより補足:「富士通FMV」についての質問です。

Aベストアンサー

Java7u51->7u55->7u60の順で新しくなりますから、
7u60以外は全て削除すれば良いです。

Qjava言語 こんにちは。 java言語をまだ習ってなく先生からこれをそのまま打ち込めって言われたん

java言語

こんにちは。
java言語をまだ習ってなく先生からこれをそのまま打ち込めって言われたんですが、一行目がどうしてもエラーが出てしまいどうすればいいのがわからないです。
よろしくお願いします

Aベストアンサー

これ、androidstudio かな?
javaの初心者が触るIDEではないと思いますが⚪⚪⚪⚪
いきなりandroid開発なんですか? 無謀だと思います。

IDEではパッケージ名は普通手で入力したりしません。
まず、パッケージを作り、その下にJavaファイルを作れば
勝手にpackage文が挿入されます。

パッケージ名はjavaファイルのフォルダ名なので
javaファイルを作成するフォルダで決まってしまいます。

QJava等の自動アップデート画面を詐称されたら?

JREやAdobeのFlashPlayer、AdobeReaderなどは、自動アップデート機能がバックグラウンドで動いており、アップデートがあれば自動でウィンドウが立ち上がり、アップデートをユーザーに促してきます。

この際、UACがアップデートの許可を求めてきますが、もし仮に全然別のウィルスがそれらアップデートの画面と全く同じものを表示してきてユーザーに許可を促す、ということはありうるのでしょうか?
ありうる場合、「ウィルスの騙りではなく正真正銘Javaのアップデートである」判断する方法はあるのでしょうか?
今まで「Javaのアップデートなら」とそのままOKしていましたが、詐称されていたらどうなるんだろう、と恐くなりました。

アップデートの有無の判断だけやらせて、更新自体は手動でWebサイトからやれば安全そうですが、できれば
自動アップデートの告知⇒その画面からアップデートを開始する
という流れはそのままにしたいのですが。

Aベストアンサー

はい、これ

やったばっかの動作検証

新Kingsoft Internet Security 2013の一つの売りである外部からのWebCam操作防止機能は有効のようです。

起動元がJava Update Schedulerになってるのがわかるかな? 要はマルウェアによる他のプロセスへのなり済ましが行われています。

日頃、システム上でどんなプロセスが動いているかざっとでも把握してると違うんだよね。


http://www.dailymotion.com/video/xxkz7a_yyyyyremote-admin_tech#.USGpWme_M2s




話変わるけど、異変を察知できた人↓

http://www.nhk.or.jp/gendai/kiroku/detail02_3263_all.html


「CPU使用率が・・・・・・・・・」

Q・Javaで、C言語の#defineに相当するもの

・Javaで、C言語の#defineに相当するもの

今までC/C++を使い込んできて、最近Javaの勉強を始めました。

C言語では条件分岐に使う定数を指定するのに#defineをよく使用していたのですが、Javaにもそれに相当するものはあるのでしょうか?

よろしくお願いします。

Aベストアンサー

JavaにはC/C++でいうところのプリプロセス処理が標準では在りませんので、
厳密な意味で#defineと同じモノではありませんが、
相当のモノであればfinal属性があります。

参考URL:http://jp.sun.com/developers/java/private/techtips/2003/tt0408.html#2

QJavaアップデートの更新の案内がきていますが?

Javaアップデートの準備が出来たと、更新の案内が来ているのですが、Javaなるものを使っているものやらわかりません。詳細文には「Java Update には、お使いのコンピュータで実行する Java アプリケーションのパフォーマンス、安定性、セキュリティーを改善するための重要な拡張機能が含まれています。この無料の更新をインストールすれば、お使いの Java アプリケーションを引き続き安全かつ効率的に活用できます。」ということで、自分のPCにインストールしているから更新の案内が(自動で)来るのだとは思うのですが。あまりメモリーの大きなPCでもないので、変なソフトは出来るだけ入れたくないのでどうしたものかと迷っています、教えてください。

Aベストアンサー

場所によってはホームページを閲覧するだけでもJavaを使うことがあります。
よほどの理由が無い限りは最新のアップデートは実施しましょう。

・Java Update
・Flash アップデート
・お使いのセキュリティソフトのアップデート

以上の3点はインターネットを使う上で重要なポイントなので必ず更新しましょう。
(もちろん必要無いとはっきりわかっているなら不要なものもありますが。)

QPure JVM と MS-JVMについて

オセロゲームのアプレットと画像処理のアプレットを作ってみました。
もちろん自分では動作を確認して、ちゃんと動いているんですが・・・

Windows98の仲間はオセロは見れるけど、画像処理のほうはみれません。
これは、Pure(Sun)JVM と MS-JVMの違いによるものなのでしょうか?
どなたかわかっている方がいらっしゃったら返答宜しくお願いします。

Aベストアンサー

MS-JVMに含まれているコアパッケージのクラスは、SunのJVMのバージョン 1.0 ~ 1.1 程度です。したがってそれ以降に新しく追加されたクラスを使うと、MS-JVMでは動作しません。

ただし、アプレットが動作しないといっても、原因がMS-JVMにあるとは限りません。まずは、画像処理のアプレットで新しくJDKに追加されたクラスを使っていないか、そして、問題のパソコンにSunの出しているPlug-inが入っているか、確認してみてください。

QJAVAのアップデートは必要ですか?

OSはXP-HOME、IE6です。
PCを起動して、インターネットに接続したら
「Java(TM)Update」を促すポップが出たので、
内容もわからないままダウンロード&インストールしてしまいました。
そしたら、オンライントレードで利用している個別銘柄の株価時価表示の
画面がみれなくなってしまいました。
このトラブルは当該ネット証券に問い合わせて解決しました。
そこで質問なのですが、

1.このアップデートは必ず必要なのですか?必要だとしたら、その理由は?

2.今後また同様のJAVAのアップデートを勧めるポップが表示された時は、
上記のようなトラブル防ぐためには、どういう点に注意すべきなのでしょうか?

Aベストアンサー

あくまで主観だけど・・・・

>1.このアップデートは必ず必要なのですか?必要だとしたら、その理由は?

「必ず」とは言えない。

>2.今後また同様のJAVAのアップデートを勧めるポップが表示された時は、上記のようなトラブル防ぐためには、どういう点に注意すべきなのでしょうか?

changelog(更新履歴)を見て、旧バージョンと比較して「どこが変更されたのか」を把握しておく。できることなら影響しそうな場所のヘルプやフォーラムのコメントを読んでみる

QJava言語(の文法!?)に関して

以下設問のうち、解答できるもの全てに解答してください。

1.Java言語とC言語の性質で「同じ」であると思われるものを挙げられるだけ挙げ  てください。
2.クラスの考え方は、プログラム作成にどのように役立ちますか?
3.クラスとオブジェクト・インスタンスの関係を説明してください。
4.イベント駆動型プログラムは、mainからの関数呼び出しで全てが実行されるプ  ログラムとどう違いますか?また、それはどう役立ちますか?
5.GUIのプログラムを考えた時、ウィンドウ中に表示されているボタンへのマウス  ・クリック操作が、どのようにJavaプログラムの処理実行に反映されるか説明  してください。


1問でもよいので、よろしくお願いします。

Aベストアンサー

1.Java言語とC言語の性質で「同じ」であると思われるものを挙げられるだけ挙げてください。

・手続き型言語である。
・制御文や変数型名に、多くの予約語が共通している。
・プログラムの実行がmain()で始まる。
・引数値の受け渡しがCall-by-Valueである。
・変数領域を動的に確保できる。
・自動変数のスコープは{}が区切りになる。
・プログラマが定義したデータ構造に任意の型名を付けることができる。


 蛇足ですが、「学校の宿題を他人に丸投げして恥かしいのですが」という一言があったほうが、回答者の印象は良くなります。
 「解答できるもの全てに解答してください」は、言い方としてあんまりです。
 なので、1.だけでご勘弁を。

Qjavaのアップデートをしようとしたら、次のようなメッセージが出て出来

javaのアップデートをしようとしたら、次のようなメッセージが出て出来ませんでした。

『システムの現在のインターネット接続ではjava updateを続行できません。
 windowsの「コントロールパネル」で「インターネットオプション」→「接続」を選択して
 LANの設定とプロキシ情報が正しいことを確認して下さい』

上記の画面を開いてみましたが、何がどういう状態であれば正しいのか分かりません。
どなたか教えていただけないでしょうか?

よろしくお願いします。

Aベストアンサー

直接の回答ではないですけど、Javaのアップデートが目的なら。

インターネットでサイトの閲覧とかはできる環境ですか?
JavaのアップデートはSun Microsystemsのサイトに
アクセス出来るのならオフライン インストール用のパッケージを
ダウンロードしてインストールすればよろしいかと思います。
(他機でダウンロードしてUSBメモリとかで持ってきても可)
http://java.com/ja/download/

QJavaで作製したプログラムはJVMがなければ動かない?

Javaはまったく知らないのですが、
windowsでも動く(私の開発環境はLinuxです)webクライアントプログラムを作製したいと思い、
ネットワークに強くかつプラットフォーム非依存ということでjavaに興味をもちました。

JavaはJVMをOSとの間に挟むことでプラットフォーム非依存を実現していると理解しているのですが、
これは、逆にいえばJVMがなければ動かせないと思ってよいでしょうか?
(Perlがコンパイラがインストールされていさえすればプラットフォーム非依存、しかしなければ決して動かないように。)
それとも、プラットフォーム依存な形にまでコンパイルするということも可能なのでしょうか?

もしJVMがなければ動かない場合、将来フリーソフトとして公開したいと思った場合、わざわざユーザ側でJVMをインストールしなければいけないですが、このことは問題にならないでしょうか?
(VC++で書けばプラットフォームに依存するでしょうが、とにかくプログラムをダウンロードするだけで動くのに対し、ユーザに煩わしさを感じさせると思うのですがどうでしょう?それが理由でフリーソフトをjavaで書くことはあまりないないことなのかな?と感じています。)

質問をまとめますと、
1) JavaプログラムはJVMがなければ動かないのか?
2) 将来フリーソフトとして公開することを考えているのならJavaで開発するは避けた方がよいのか?

です。よろしくお願いします。

Javaはまったく知らないのですが、
windowsでも動く(私の開発環境はLinuxです)webクライアントプログラムを作製したいと思い、
ネットワークに強くかつプラットフォーム非依存ということでjavaに興味をもちました。

JavaはJVMをOSとの間に挟むことでプラットフォーム非依存を実現していると理解しているのですが、
これは、逆にいえばJVMがなければ動かせないと思ってよいでしょうか?
(Perlがコンパイラがインストールされていさえすればプラットフォーム非依存、しかしなければ決して動かないように。)
...続きを読む

Aベストアンサー

> 1) JavaプログラムはJVMがなければ動かないのか?

これはNo.1のかたも書いておられますがYesです。

> 2) 将来フリーソフトとして公開することを考えているのならJavaで開発するは避けた方がよいのか?

将来,というのをいつ頃と考えるかによると思います。最近のPC(特に米社製)にはJVM(正確にはJRE)をインストールした状態で販売されているものもありますし,また昨年SunとMSが和解したことで,Windowsに標準で(Sunの)JREが搭載される可能性も高まっていると思います(一番良いのはJava Web Startがデフォルト搭載されることなんですが…)。

またそもそもフリーソフトをダウンロードしてインストールするような人なら,JREのインストールもそれほど苦にしないように思います。逆にJREのインストールを嫌がるような人は,フリーソフトをダウンロードしてインストールすることもないのではないでしょうか?

またどうしてもWindows nativeで動作するフリーソフトが必要になれば,有償ですがJavaのプログラムをWindowsのEXEファイルに変換するツールもあります(例えば http://www.xlsoft.com/jp/products/jet/index.html )

クライアント系のJavaのフリーソフトも(数はすごく多いわけではありませんが)ちゃんと存在しますし,「避けたほうが良い」とまでは言えないのではないかと思います。(私見ですが)

> 1) JavaプログラムはJVMがなければ動かないのか?

これはNo.1のかたも書いておられますがYesです。

> 2) 将来フリーソフトとして公開することを考えているのならJavaで開発するは避けた方がよいのか?

将来,というのをいつ頃と考えるかによると思います。最近のPC(特に米社製)にはJVM(正確にはJRE)をインストールした状態で販売されているものもありますし,また昨年SunとMSが和解したことで,Windowsに標準で(Sunの)JREが搭載される可能性も高まっていると思います(一番良いのはJava Web Startが...続きを読む


人気Q&Aランキング