Java、発表から20周年を迎える 80
ストーリー by headless
成人 部門より
成人 部門より
Javaが公式に発表されてから、23日で20周年となる(The Registerの記事、
Forbesの記事、
Oracle - Java Timeline、
V3.co.ukの記事)。
Javaはプロセッサーに依存しないプログラミング言語として、当初は「Oak」という名前で開発されていた。後に商標の関係で「Java」となり、1995年5月23日にSunWorldカンファレンスの会場で発表された。Netscape Navigatorに組み込まれたこともあり、当時急速に発展していたインターネットとともにJavaは重要な位置を占めるようになった。また、クロスプラットフォーム性が評価され、さまざまな場面で使われるようになる。現在ではデスクトップアプリケーションの開発にJavaを使用することはあまりないが、モバイルアプリケーションでは主要な開発言語となっており、プログラミング言語の人気ランキングでも上位を保ち続けている。
あるAnonymous Cowardのタレこみによれば、OracleのMark Reinhold氏は言語とプラットフォームの基本的な価値が読みやすさとシンプルさにあるとし、Javaのコードを読んでその意味を理解することは簡単であり、開発言語によくある曖昧な落とし穴は多くないと述べているとのことだ(ITworldの記事、 Slashdotの記事)。
Javaはプロセッサーに依存しないプログラミング言語として、当初は「Oak」という名前で開発されていた。後に商標の関係で「Java」となり、1995年5月23日にSunWorldカンファレンスの会場で発表された。Netscape Navigatorに組み込まれたこともあり、当時急速に発展していたインターネットとともにJavaは重要な位置を占めるようになった。また、クロスプラットフォーム性が評価され、さまざまな場面で使われるようになる。現在ではデスクトップアプリケーションの開発にJavaを使用することはあまりないが、モバイルアプリケーションでは主要な開発言語となっており、プログラミング言語の人気ランキングでも上位を保ち続けている。
あるAnonymous Cowardのタレこみによれば、OracleのMark Reinhold氏は言語とプラットフォームの基本的な価値が読みやすさとシンプルさにあるとし、Javaのコードを読んでその意味を理解することは簡単であり、開発言語によくある曖昧な落とし穴は多くないと述べているとのことだ(ITworldの記事、 Slashdotの記事)。
落とし穴を掘る側の人たち (スコア:3, すばらしい洞察)
> Javaのコードを読んでその意味を理解することは簡単であり、開発言語によくある曖昧な落とし穴は多くない
納得がいかない人も居るだろうな。
Re: (スコア:0)
落とし穴がない文法にするにはGoogleのGOくらい徹底しないとな。
Re: (スコア:0)
Goに比べればJavaのほうがましだわ。
むしろ.netの先行きが心配 (スコア:2, すばらしい洞察)
Javaが.Netに喰われるとはずっと言われてきたけれども何か大勢に変化が起きたようには見えない。
むしろ事務事務したお仕事はともかく若手の技術者が憧れるようなホットな分野での.Netのプレゼンスが皆無なことを心配した方が良い。若い良い人材が流れ込まない界隈は先行き厳しい。.Netは先行きの細さが懸念されると思う。
Javaも初めこそGUIから始まったけれども、ウェブの時代はサーブレットに各種フレームワーク、モバイルの時代もJavaMEやAndroid、そして昨今のビッグデータ関連でのHadoopエコシステムの活発さは言うまでも無い。Javaは時代の変化に合わせてそれなりに新たな活用の場を見いだしてきたし、今も一線に留まっている。
そんなSunやOracleの手綱を超えて勝手に適用領域を広げてきたJavaと未だMicrosoftの用意した枠を超えられない.Netを分けた分水嶺はApache FoundationでありOSSであると思う。Apacheプロジェクト上の多数のJavaプロジェクトに比肩するほど企業やコミッターを集めたOSS活動って.Netの世界ではなかなか存在しないでしょ。
Apacheプロジェクトの成果物が大きなデータを扱うネット企業で活用され、その成果物がまたJavaで書かれたApacheプロジェクトとしてOSSコミュニティに還元される。Javaの場合はそういうエコシステムの事例がいくつもあるけれども、.Netで一番ホットなOSSがMS謹製のASP.NET MVCとかいう笑えない状態である限り、MSの業界に占める指導力の低下と共に.Netも微妙な先行きだと思う。
Javaのようなもの(Dalvikとか) (スコア:2)
> モバイルアプリケーションでは主要な開発言語となっており
これってAndroidアプリも念頭にあるのだろうけど、AndroidのランタイムもバイトコードもJavaではないよね。
ソースコードレベルである程度の互換性があるだけで。
まぁ「言語」として見ればJavaと呼んでしまっても良いかもしれないけど、
Java側はこういう、文法だけ互換のある、違う何かにコンパイルするようなモノをJavaと呼ぶことは認めていないんじゃない?
Re:Javaのようなもの(Dalvikとか) (スコア:2, すばらしい洞察)
> AndroidのランタイムもバイトコードもJavaではないよね。
主要な開発言語の話をしているのに、実行環境の話で突っ込むのは筋が悪すぎるね。
それにAndroidの公式ドキュメントにもこう書いて有るんだから。
"Android apps are written in the Java programming language."
https://developer.android.com/guide/components/fundamentals.html [android.com]
Re:Javaのようなもの(Dalvikとか) (スコア:2)
確かに筋の悪いツッコミではありますが、
このストーリーのリンク先はどれも言語としてのJavaじゃなく実行環境の話をしているし(特にOracle)、
The registerの記事に至っては「iPhoneじゃあObjective-Cに押しのけられたし、Androidはdalvik VMを採用してるよね」と、むしろモバイル分野における劣勢を示す書き方になっています。
スラドだけ違っているので、ちょっとモニョったんです。
Re: (スコア:0)
確かに少なくともモバイルの一大勢力であるiOSで直接使えない言語を、
「モバイルアプリケーションでは主要な開発言語」なんて書いていいのか
どうかは気にはなった。
元コメの話とずれる一方だから自重したけど。
Re: (スコア:0)
JavaのVMは使わないけど言語はJavaであり、広義のJavaに含まれる、的な感じでしょうかね。
JVMをつかうJavaでない言語もチラホラあるし、その逆とでもいうか…
Javaという名前を使う要件にJVMやランタイムが含まれるかどうかの問題ということになるれど、
C99とかに準拠した標準ライブラリを持たないコンパイラだってCコンパイラとか呼ばれたりする訳で。
Re:Javaのようなもの(Dalvikとか) (スコア:2, 参考になる)
いや、ソースコードレベルではJavaそのものでしょう。
Wikipedia [wikipedia.org]には、
>Android SDKに含まれる dx と呼ばれるツールが正規のJavaコンパイラでコンパイルされたJavaクラスファイルを別のファイル形式('.dex'形式)に変換する。
とあります。
Re:Javaのようなもの(Dalvikとか) (スコア:1)
そういえば今現在発売されている製品で、Java MEの実行環境を持つものはあるのだろうか。
もう廃れた言語なのかな。自分は素のJ2MEがそのまま動く環境と言うのはSymbian以外知らないけれど。
Re:Javaのようなもの(Dalvikとか) (スコア:2, 興味深い)
Blu-ray Disc の Java 実行環境が Java ME 相当です
次世代の Ultra HD Blu-ray でも引き継がれるようです
Re: (スコア:0)
BlackBerry OSの7以前は正式なライセンスを取得したJava仮想マシンが搭載されています。
10で中身が大幅に変わった上に日本国内で合法的に利用できる機種が出ていないのでそちらは確認していませんが。
Re: (スコア:0)
MotoのスマフォがJavaME環境載せてたが、今も載せてるかは知らない
Re: (スコア:0)
文法構造が同じで、語彙だけが違うもの。津軽弁と鹿児島弁、古典の日本語と現代の日本語同じ言語と言ってもいいのでしょうか? 古典と現代の違いは文法も多少違うかもだけど。(´・ω・`)
Re: (スコア:0)
別言語となるか方言となるかはたぶんに政治的なものです。中国語の方言の多くは、欧州なら別言語とみなされていただろうくらいに違います。
Re:Javaのようなもの(Dalvikとか) (スコア:1)
広東語と北京語とかのことを言っているのなら、
言語学的には完全に別言語で、中国政府も中国語の方言であるとまでは言わないと思う。
北京語が共通語であるというだけで。
言語学的に方言か別言語か議論が分かれるものもあるけど、自然言語の話はここまでにして、
プログラム言語の場合、ソースに互換があれば「同じ言語」と呼ぶ場合が多いと思う。
それこそベーシックは、派生の多さ、実行環境の多さではどんな言語にも負けていないくらい
多いけど、どれもみんなベーシックで納得している例もあるし。
Re:Javaのようなもの(Dalvikとか) (スコア:1)
その辺りの事情は、Wikipediaの記事 [wikipedia.org]によれば、
と呼び分けてるね。
# それにつけても、このクソCSSはいつ直すのか…
Re:Javaのようなもの(Dalvikとか) (スコア:1)
その分類は今は当てはまらない。
無理やり当てはめると、ソースコードは「プログラミング言語Java」で狭義に入るけど、
実行環境はJavaVMとは無縁だから、広義には入らない
という矛盾した状況になるから。
Re:Javaのようなもの(Dalvikとか) (スコア:1)
確かに一般に言う狭義と広義の関係にはなっていない、という意味では矛盾かも知れないね。
むしろ、「プログラミング言語Java」を広義で、「Javaプラットフォーム」を狭義と呼ぶべきだろうね。
Re: (スコア:0)
それはそれで、また問題が出ちゃう気がする。
Javaソースが動く環境がJavaVMの環境が唯一な、2000年代前半くらいの状況だと
Javaの実行環境に依存した仕様ミスが見つかった場合、「広義のJavaでバグがある」と表現したほうが適当だし、
文法シンタックス上の仕様ミスがある場合、「狭義のJava言語仕様に問題がある」と言ったほうが適当になる。
実行環境の実現方法とソースとが乖離しても大丈夫なほど普及したってことで、喜んじゃうくらいのお気楽さがいいんじゃないかな。
よく言われているけど、Javaはもう死にゆく言語だから。
巨人が死ぬとはどういうことかというのが目の当たりに出来て面白いと思う。
Re: (スコア:0)
COBOLやfortranでさえ死ぬところが拝めてないのに、
Javaの死ぬところが目の当たりに出来て面白いとか、
ずいぶんせっかちさんだね。
Re:Javaのようなもの(Dalvikとか) (スコア:1)
文脈で判ることなら、文脈で判断すれば?
それか、文脈によって{広義, 狭義}と{Java実行環境, Java言語(仕様)}とを使い分ければいいんじゃない?
それじゃダメなの? 何が不満なの?
Re: (スコア:0)
コボルやフォートランはとっくに死んだ言語だろう。
コボルで事務システム新規開発とかないし、
フォートランも77世代で保守以外に組むことありえないし、
90世代は別モノ。
Re: (スコア:0)
> # それにつけても、このクソCSSはいつ直すのか…
まだ報告されていなかったようなのでとりあえずバグ報告してみた。
http://osdn.jp/ticket/browse.php?group_id=4&tid=35191 [osdn.jp]
Re: (スコア:0)
ツリー表示でインデントが崩れるバグも、見難くてしょうがないのでとっとと直して欲しいもんだ。
Re: (スコア:0)
そっちも報告した(実際にはチケット #35191よりちょっと前に)。
http://osdn.jp/ticket/browse.php?group_id=4&tid=35185 [osdn.jp]
いったいスラド移行前にどういうテストをしたんだか。
答え: していない
Re: (スコア:0)
JavaSEのサブセットのAPIを持ってるよ
あなたとJAVA, (スコア:1)
今すぐダウンロー
ド
Re: (スコア:0)
Askとかいらないです
おらくる。 (スコア:1)
Oracleの法務が司るプラットフォーム。
でもJavaがなければ、たぶん どとねとにおいて、MSは本気を出さなかった。
Re:おらくる。 (スコア:1)
だな
今現在ではJavaを追い越したC♯もここまで発展しなかった可能性
やっぱり競争があると進歩するもんだね
リッチコンテンツの主役だった (スコア:1)
当初は、ブラウザ上のアプレットとして、リッチコンテンツとして利用されてましたね。
今は、Javaの遅さやセキュリティの問題があり、また代替技術も出てきて、アプレットは衰退気味ですよね。
サーバーサイドでは、現役と聞きましたが。
Oak (スコア:0)
公開前のコードネームの話をされても……正直言うとJava 2からしか知らない
Re: (スコア:0)
公開前のコードネームの話をされても……正直言うとJava 2からしか知らない
あなたが知っているかどうかを基準に記事にすることは不可能ですので、あきらめてください。
Re:Oak (スコア:1)
SUNってスパークとかジャバとか落ちるものが好きなのかな。Oakもドングリをたくさん落とすし。
Re: (スコア:0)
Oak→ドングリ→落ちるはまだわからんでもないが、
Sparc(Spark?)やJavaがなぜ落ちるものなのかよう分からん。
Re:Oak (スコア:1)
スパークならこれ [wikipedia.org]かと
ジャバはわからない...
Re:Oak (スコア:2)
項 [wikipedia.org]のひとつにある JAVA PIPEGUARD (洗剤)
を連想するんでしょうね。
Re:Oak (スコア:1)
Re: (スコア:0)
いろんな歌にあるように太陽は沈みまた登る。
これからはすべてがJavaになる (スコア:0)
っていう本を当時読んだな。一度コード書けば、どのマシンでも動く時代が来る。
え?実行速度? それはチップの性能アップで問題なら無くなるw
って内容だったが デスクトップアプリ用の言語としてはそれほど普及はしなかったな
Re:これからはすべてがJavaになる (スコア:1)
そりゃあMSが事実上独占してるんだもの。
独占企業が存在するPC市場の話をしたって、あんまり意味ないよ。
%%
といいつつPC市場ではVB6が衰退してC#がちょっと伸びてたりするみたいだがな。
MS独裁でなければ、こういう歪んだ市場は生まれなかったろう。
%%
>え?実行速度? それはチップの性能アップで問題なら無くなるw
ちなみに知らない人も多いらしいけど、JITコンパイラの話は最初から出てた。
自分もJavaの記事で始めて知ったからな。
とはいえ、HotSpotVMの性能向上は予想以上だったが
Re:これからはすべてがJavaになる (スコア:1)
登場した当時は、今の言葉で言うバズワードにまみれて華々しく登場したので、
わりとしらーっと眺めてたプログラマが多かったように記憶しています。
JVMの着眼点はすごいって持ち上げられていましたけど、プログラマにとっては
「えー、p-codeとかー、MS BASICの仮想マシンとかー、別に珍しくもないしー」
って感じで失笑されてました。
いわゆる尖った髪のボスがいかにも好きそうな雰囲気をまとっていたので、
そういうのが多くいる業界の人は戦々恐々としていたのではないでしょうか。
まさか勘定系で使われるようになるとは思いませんでしたけど。
Re:これからはすべてがJavaになる (スコア:1)
今に比べれば関連論文や関連書籍が少なかった時代であったことも偶々良いほうに働いて、基本文献にあたろうとする人にとってはハズレをひくことで安心慢心を避けられたと言う印象。
Microsoft Windows 3.1登場前後のMS Cも仮想インタプリタ上でコード実行が…とかあったので当時のバズワードはバズワードとして今よりも効果が薄かったかも。
…何をさておいて、当時は仮想マシンと勘定系は無関係な時代だったのであろう。
Re: (スコア:0)
Re: (スコア:0)
10年くらい前だと、株やFXの取引アプリはJavaが大半だったな
ネイティブアプリというのをウリにしていた会社もあった
さらに前だと、業務系アプリもJavaのが多かった(そのご急速に.netになったが)
本体はネイティブなのにインストーラがJavaというのもあったよ
ごく最近でも、nokiaのスマホのROM焼きツールがJavaだったかな
コンシューマアプリでJavaというのは見たことがない
Re: (スコア:0)
Javaのクライアントアプリは今や絶滅危惧種だが、最後までルック&フィールの違和感と動作のもっさり感が消えなかった印象。
ルック&フィールはともかく、速度については、ベンチマークではあんなに速い言語なのに不思議。
当初はブラウザで絵を動かすのに使われた (スコア:0)
なつかしい。そしてダイアルアップには重すぎたw
Re: (スコア:0)
ローカルで使うにはメリット感じられなかった。
CUIだったらsmalltalkかC/C++、GUIフロントエンドはVB使っちゃえとなったな。
せめて、演算子オーバーロード入れてからBigDecimalとかやって欲しかった。。