パスワードを忘れた? アカウント作成
12077005 story
Java

Java、発表から20周年を迎える 80

ストーリー by headless
成人 部門より
Javaが公式に発表されてから、23日で20周年となる(The Registerの記事Forbesの記事Oracle - Java TimelineV3.co.ukの記事)。

Javaはプロセッサーに依存しないプログラミング言語として、当初は「Oak」という名前で開発されていた。後に商標の関係で「Java」となり、1995年5月23日にSunWorldカンファレンスの会場で発表された。Netscape Navigatorに組み込まれたこともあり、当時急速に発展していたインターネットとともにJavaは重要な位置を占めるようになった。また、クロスプラットフォーム性が評価され、さまざまな場面で使われるようになる。現在ではデスクトップアプリケーションの開発にJavaを使用することはあまりないが、モバイルアプリケーションでは主要な開発言語となっており、プログラミング言語の人気ランキングでも上位を保ち続けている。

あるAnonymous Cowardのタレこみによれば、OracleのMark Reinhold氏は言語とプラットフォームの基本的な価値が読みやすさとシンプルさにあるとし、Javaのコードを読んでその意味を理解することは簡単であり、開発言語によくある曖昧な落とし穴は多くないと述べているとのことだ(ITworldの記事Slashdotの記事)。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2015年05月23日 13時29分 (#2819160)

    > Javaのコードを読んでその意味を理解することは簡単であり、開発言語によくある曖昧な落とし穴は多くない

    納得がいかない人も居るだろうな。

    • by Anonymous Coward

      落とし穴がない文法にするにはGoogleのGOくらい徹底しないとな。

      • by Anonymous Coward

        Goに比べればJavaのほうがましだわ。

  • > モバイルアプリケーションでは主要な開発言語となっており

    これってAndroidアプリも念頭にあるのだろうけど、AndroidのランタイムもバイトコードもJavaではないよね。
    ソースコードレベルである程度の互換性があるだけで。
    まぁ「言語」として見ればJavaと呼んでしまっても良いかもしれないけど、
    Java側はこういう、文法だけ互換のある、違う何かにコンパイルするようなモノをJavaと呼ぶことは認めていないんじゃない?

    • by Anonymous Coward on 2015年05月23日 14時25分 (#2819174)

      > AndroidのランタイムもバイトコードもJavaではないよね。
      主要な開発言語の話をしているのに、実行環境の話で突っ込むのは筋が悪すぎるね。
      それにAndroidの公式ドキュメントにもこう書いて有るんだから。
      "Android apps are written in the Java programming language."

      https://developer.android.com/guide/components/fundamentals.html [android.com]

      親コメント
      • 確かに筋の悪いツッコミではありますが、
        このストーリーのリンク先はどれも言語としてのJavaじゃなく実行環境の話をしているし(特にOracle)、
        The registerの記事に至っては「iPhoneじゃあObjective-Cに押しのけられたし、Androidはdalvik VMを採用してるよね」と、むしろモバイル分野における劣勢を示す書き方になっています。
        スラドだけ違っているので、ちょっとモニョったんです。

        親コメント
        • by Anonymous Coward

          確かに少なくともモバイルの一大勢力であるiOSで直接使えない言語を、
          「モバイルアプリケーションでは主要な開発言語」なんて書いていいのか
          どうかは気にはなった。

          元コメの話とずれる一方だから自重したけど。

      • by Anonymous Coward

        JavaのVMは使わないけど言語はJavaであり、広義のJavaに含まれる、的な感じでしょうかね。
        JVMをつかうJavaでない言語もチラホラあるし、その逆とでもいうか…
        Javaという名前を使う要件にJVMやランタイムが含まれるかどうかの問題ということになるれど、
        C99とかに準拠した標準ライブラリを持たないコンパイラだってCコンパイラとか呼ばれたりする訳で。

    • by Anonymous Coward on 2015年05月23日 20時03分 (#2819296)

      いや、ソースコードレベルではJavaそのものでしょう。
      Wikipedia [wikipedia.org]には、
      >Android SDKに含まれる dx と呼ばれるツールが正規のJavaコンパイラでコンパイルされたJavaクラスファイルを別のファイル形式('.dex'形式)に変換する。
      とあります。

      親コメント
    • by Anonymous Coward on 2015年05月23日 13時05分 (#2819145)

      そういえば今現在発売されている製品で、Java MEの実行環境を持つものはあるのだろうか。
      もう廃れた言語なのかな。自分は素のJ2MEがそのまま動く環境と言うのはSymbian以外知らないけれど。

      親コメント
      • by Anonymous Coward on 2015年05月23日 18時43分 (#2819257)

        Blu-ray Disc の Java 実行環境が Java ME 相当です
        次世代の Ultra HD Blu-ray でも引き継がれるようです

        親コメント
      • by Anonymous Coward

        BlackBerry OSの7以前は正式なライセンスを取得したJava仮想マシンが搭載されています。
        10で中身が大幅に変わった上に日本国内で合法的に利用できる機種が出ていないのでそちらは確認していませんが。

      • by Anonymous Coward

        MotoのスマフォがJavaME環境載せてたが、今も載せてるかは知らない

    • by Anonymous Coward

      文法構造が同じで、語彙だけが違うもの。津軽弁と鹿児島弁、古典の日本語と現代の日本語同じ言語と言ってもいいのでしょうか? 古典と現代の違いは文法も多少違うかもだけど。(´・ω・`)

      • by Anonymous Coward

        別言語となるか方言となるかはたぶんに政治的なものです。中国語の方言の多くは、欧州なら別言語とみなされていただろうくらいに違います。

        • by Anonymous Coward on 2015年05月23日 13時54分 (#2819166)

          広東語と北京語とかのことを言っているのなら、
          言語学的には完全に別言語で、中国政府も中国語の方言であるとまでは言わないと思う。
          北京語が共通語であるというだけで。
          言語学的に方言か別言語か議論が分かれるものもあるけど、自然言語の話はここまでにして、
          プログラム言語の場合、ソースに互換があれば「同じ言語」と呼ぶ場合が多いと思う。
          それこそベーシックは、派生の多さ、実行環境の多さではどんな言語にも負けていないくらい
          多いけど、どれもみんなベーシックで納得している例もあるし。

          親コメント
          • その辺りの事情は、Wikipediaの記事 [wikipedia.org]によれば、

            • 狭義ではオブジェクト指向プログラミング言語Java
            • 広義ではプログラミング言語Javaのプログラムの実行環境および開発環境(=Javaプラットフォーム)

            と呼び分けてるね。

            # それにつけても、このクソCSSはいつ直すのか…

            親コメント
            • by Anonymous Coward on 2015年05月23日 15時39分 (#2819200)

              その分類は今は当てはまらない。
              無理やり当てはめると、ソースコードは「プログラミング言語Java」で狭義に入るけど、
              実行環境はJavaVMとは無縁だから、広義には入らない
              という矛盾した状況になるから。

              親コメント
              • 確かに一般に言う狭義と広義の関係にはなっていない、という意味では矛盾かも知れないね。
                むしろ、「プログラミング言語Java」を広義で、「Javaプラットフォーム」を狭義と呼ぶべきだろうね。

                親コメント
              • by Anonymous Coward

                それはそれで、また問題が出ちゃう気がする。
                Javaソースが動く環境がJavaVMの環境が唯一な、2000年代前半くらいの状況だと
                Javaの実行環境に依存した仕様ミスが見つかった場合、「広義のJavaでバグがある」と表現したほうが適当だし、
                文法シンタックス上の仕様ミスがある場合、「狭義のJava言語仕様に問題がある」と言ったほうが適当になる。

                実行環境の実現方法とソースとが乖離しても大丈夫なほど普及したってことで、喜んじゃうくらいのお気楽さがいいんじゃないかな。
                よく言われているけど、Javaはもう死にゆく言語だから。
                巨人が死ぬとはどういうことかというのが目の当たりに出来て面白いと思う。

              • by Anonymous Coward

                COBOLやfortranでさえ死ぬところが拝めてないのに、
                Javaの死ぬところが目の当たりに出来て面白いとか、
                ずいぶんせっかちさんだね。

              • 文脈で判ることなら、文脈で判断すれば?
                それか、文脈によって{広義, 狭義}と{Java実行環境, Java言語(仕様)}とを使い分ければいいんじゃない?
                それじゃダメなの? 何が不満なの?

                親コメント
              • by Anonymous Coward

                コボルやフォートランはとっくに死んだ言語だろう。
                コボルで事務システム新規開発とかないし、
                フォートランも77世代で保守以外に組むことありえないし、
                90世代は別モノ。

            • by Anonymous Coward

              > # それにつけても、このクソCSSはいつ直すのか…

              まだ報告されていなかったようなのでとりあえずバグ報告してみた。
              http://osdn.jp/ticket/browse.php?group_id=4&tid=35191 [osdn.jp]

              • by Anonymous Coward

                ツリー表示でインデントが崩れるバグも、見難くてしょうがないのでとっとと直して欲しいもんだ。

              • by Anonymous Coward

                そっちも報告した(実際にはチケット #35191よりちょっと前に)。
                http://osdn.jp/ticket/browse.php?group_id=4&tid=35185 [osdn.jp]
                いったいスラド移行前にどういうテストをしたんだか。
                答え: していない

    • by Anonymous Coward

      JavaSEのサブセットのAPIを持ってるよ

  • by Anonymous Coward on 2015年05月23日 12時35分 (#2819135)

    今すぐダウンロー

  • by Anonymous Coward on 2015年05月23日 15時41分 (#2819202)

    Oracleの法務が司るプラットフォーム。
    でもJavaがなければ、たぶん どとねとにおいて、MSは本気を出さなかった。

    • by Anonymous Coward on 2015年05月23日 15時48分 (#2819205)

      だな
      今現在ではJavaを追い越したC♯もここまで発展しなかった可能性
      やっぱり競争があると進歩するもんだね

      親コメント
  • 当初は、ブラウザ上のアプレットとして、リッチコンテンツとして利用されてましたね。
    今は、Javaの遅さやセキュリティの問題があり、また代替技術も出てきて、アプレットは衰退気味ですよね。
    サーバーサイドでは、現役と聞きましたが。

  • by Anonymous Coward on 2015年05月23日 13時07分 (#2819148)

    公開前のコードネームの話をされても……正直言うとJava 2からしか知らない

    • by Anonymous Coward

      公開前のコードネームの話をされても……正直言うとJava 2からしか知らない

      あなたが知っているかどうかを基準に記事にすることは不可能ですので、あきらめてください。

  • by Anonymous Coward on 2015年05月23日 15時06分 (#2819188)

    っていう本を当時読んだな。一度コード書けば、どのマシンでも動く時代が来る。
    え?実行速度? それはチップの性能アップで問題なら無くなるw

    って内容だったが デスクトップアプリ用の言語としてはそれほど普及はしなかったな

    • by Anonymous Coward on 2015年05月23日 17時59分 (#2819247)

      そりゃあMSが事実上独占してるんだもの。
      独占企業が存在するPC市場の話をしたって、あんまり意味ないよ。
      %%
      といいつつPC市場ではVB6が衰退してC#がちょっと伸びてたりするみたいだがな。
      MS独裁でなければ、こういう歪んだ市場は生まれなかったろう。
      %%
      >え?実行速度? それはチップの性能アップで問題なら無くなるw
      ちなみに知らない人も多いらしいけど、JITコンパイラの話は最初から出てた。
      自分もJavaの記事で始めて知ったからな。
      とはいえ、HotSpotVMの性能向上は予想以上だったが

      親コメント
    • by Anonymous Coward on 2015年05月23日 22時41分 (#2819351)

      登場した当時は、今の言葉で言うバズワードにまみれて華々しく登場したので、
      わりとしらーっと眺めてたプログラマが多かったように記憶しています。
      JVMの着眼点はすごいって持ち上げられていましたけど、プログラマにとっては
      「えー、p-codeとかー、MS BASICの仮想マシンとかー、別に珍しくもないしー」
      って感じで失笑されてました。

      いわゆる尖った髪のボスがいかにも好きそうな雰囲気をまとっていたので、
      そういうのが多くいる業界の人は戦々恐々としていたのではないでしょうか。
      まさか勘定系で使われるようになるとは思いませんでしたけど。

      親コメント
      • 今に比べれば関連論文や関連書籍が少なかった時代であったことも偶々良いほうに働いて、基本文献にあたろうとする人にとってはハズレをひくことで安心慢心を避けられたと言う印象。
        Microsoft Windows 3.1登場前後のMS Cも仮想インタプリタ上でコード実行が…とかあったので当時のバズワードはバズワードとして今よりも効果が薄かったかも。
        …何をさておいて、当時は仮想マシンと勘定系は無関係な時代だったのであろう。

        親コメント
    • by Anonymous Coward
      それなりにプログラマが多いから、普及しているんじゃないの?それでも普及していないというなら、開発効率もしくはプログラマの質の問題?
      • by Anonymous Coward

        10年くらい前だと、株やFXの取引アプリはJavaが大半だったな
        ネイティブアプリというのをウリにしていた会社もあった
        さらに前だと、業務系アプリもJavaのが多かった(そのご急速に.netになったが)
        本体はネイティブなのにインストーラがJavaというのもあったよ
        ごく最近でも、nokiaのスマホのROM焼きツールがJavaだったかな
        コンシューマアプリでJavaというのは見たことがない

        • by Anonymous Coward

          Javaのクライアントアプリは今や絶滅危惧種だが、最後までルック&フィールの違和感と動作のもっさり感が消えなかった印象。
          ルック&フィールはともかく、速度については、ベンチマークではあんなに速い言語なのに不思議。

  • by Anonymous Coward on 2015年05月23日 15時31分 (#2819197)

    なつかしい。そしてダイアルアップには重すぎたw

    • by Anonymous Coward

      ローカルで使うにはメリット感じられなかった。
      CUIだったらsmalltalkかC/C++、GUIフロントエンドはVB使っちゃえとなったな。

      せめて、演算子オーバーロード入れてからBigDecimalとかやって欲しかった。。

typodupeerror

あつくて寝られない時はhackしろ! 386BSD(98)はそうやってつくられましたよ? -- あるハッカー

読み込み中...