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

未だJava8の人気が根強い 47

ストーリー by nagazou
ご長寿 部門より
Java開発者向けの年次調査「2022 Java Developer Productivity Report」によると、Java開発では現在でも「Java 8」の利用者が最も多いそうだ。同調査は今年で10年目を迎えたとのこと。今回の調査は2021年10月〜2022年1月に実施、約880人が回答を行ったという(2022 Java Developer Productivity ReportOSDN Magazine)。

メインアプリケーションで利用しているJDKプログラミング言語については、37%が「Java 8」と回答した。続いてJava 11が29%、Java 12以上が12%だった。Java 8、Java 11は長期サポート版でそれぞれ2014年と2018年に公開されている。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • 有償化の影響 (スコア:2, 参考になる)

    by Anonymous Coward on 2022年03月15日 14時19分 (#4215926)

    JDKの有償化したタイミングで、Java8はアップデートしなければ無償のまま。Java9/10は常にサポート終了 Java11はすぐに有償化される、、、みたいな話になったから、そのままJava8使いつづけるってことになった案件は多い気がする。
    そこから、OpenJDKに移るなり、有償化版に入れ替えるとかしなかったところがそのままなんじゃなかろうか。
    無償に戻ったの去年の夏だし、Java8の延長サポート的なのも、今年で終了なので、来年あたりは利用比率も変わってくるんじゃないかな。

    • by Anonymous Coward on 2022年03月15日 14時28分 (#4215935)

      Amazon Corretto 8 があと4年はサポートが続くので、まだまだ先の話。

      親コメント
    • by Anonymous Coward

      Java9でモジュール機能が追加されたけども、
      それと同時に標準ライブラリからいくつか機能がパージされたりし、
      (追加のライブラリ導入で対応できるとは言え)移行がメンドイてのもあるとは思う。

      • by Anonymous Coward

        Java9素人ですがパージされた機能でdeprecatedじゃないのもあったの?
        deprecatedだけ消えたなら、古いコードを触りたくないという判断もあったんじゃないかな

    • by Anonymous Coward

      完全に興味薄れて、無償に戻った情報も今初めて知ったぐらいですね。
      また有償化されるかもしれないから、今更戻る人もいなさそう。

  • by Anonymous Coward on 2022年03月15日 14時11分 (#4215918)

    そこから先のJavaはOracleが自らとどめを刺して、みんな逃げた。

    • Java 8の利用率が高い理由は#4216237 [srad.jp]に書いてあるようにサポート期間が長いことから現時点でjava 11以降のLTS版にすぐに移行する必要性が少ないことが大きいでしょう。 IPAの報告ソフトウェア開発分析データ集2020 [ipa.go.jp]を見てもJavaによる開発比率は以前よりは下がってはいるがまだ4割強あるので今後も使われるでしょう。
      親コメント
    • by Anonymous Coward

      多言語の発展と浸透でJavaの優位性は無くなったもんな

    • by Anonymous Coward

      Java屋はどこへ消えた?

      いや割とマジメに、彼らは主にどこへ行くのかなと。

      • by Anonymous Coward

        元Java屋「Python、c#てこんな実践的だったのね♪、JS系フレームワークもええやん!」

        • by Anonymous Coward

          乱立するフレームワークのせいで嫌気がさしてた頃に
          ASP.Net+C#+SQL serverの開発やって、
          アンチMSの私がMS信者になりました。

          • by Anonymous Coward

            MS信者(多分)で年寄り社畜の私は社向けWebアプリの
            IIS + Classic ASP + SQL Server + VBScriptからIIS + PHP + SQL Server + JavaScriptへ移植する日々でMSが嫌いになりそうです
            何故PHPなのにIISとSQL Serverなのか、何故IEサポート終了による作業なのにIEでも動作確認が必要なのかなど社畜に疑問を持つことは許されないのです

            • by Anonymous Coward

              LAMPに移行するよりは楽でいいだろ

              • by Anonymous Coward

                どんなものでも使い方が悪ければやりにくいことこの上ないさ…

                LAMPの方が改変の自由を悪用して、独自ルール盛り込んだ上で文書化しない囲い込みに走ってる場合多くて…
                避けるようになった理由ですし。

                #言語仕様にまで悪さする変更はヤメロ

      • by Anonymous Coward

        次にJavaが担っていたソフトウェアの役割を支える位置に居るのは、rustじゃね?

      • 日本企業については、「直近の三年間Javaをやって来た人」を求人の条件に入れたせいで
        多くのJava開発者が応募できなくなった。奴らはJava開発者が常にJavaの仕事ばかりを
        してると思ってるのかね。仕事が取れなきゃ他の仕事やってでも食いつなぐんだよ。
        それがたとえPHPやRubyやC++でも。

        それでも生き残ってる人は、たぶん外資に行ったんじゃないか?
        俺は生き残れなくてPHPで食ってた。Java開発者があんな糞言語を使わされる
        理由が「Java以外の言語も使えたから」って、マジ泣ける。

        なおJavaが最期だのなんだのって言う奴らって、だいたいスキルがクソ低いんだよ。
        GoFやEffective Javaのイロハも理解してないから。

        • by Anonymous Coward

          GoFは如何にJavaと言ってもプログラマーが意識しなければならないのは既に全パターンの三分の一くらいであとは言語の機能を使えば意識せずに使える気がする。
          Java8は知らん。
          どーでもいいけどエフェクティブジャバってジャバが進歩してるのに改定されないね

          • by Anonymous Coward
            もともと「オブジェクト指向における再利用のためのデザインパターン」だからね
            あれはあくまでも再利用されることを意図したフレームワークの設計者に必要とされる開発技法・指針であって
            そのようなフレームワークを活用するとしても、結局は再利用されることのない業務アプリを組む土方には関係ない話
  • by Anonymous Coward on 2022年03月15日 23時34分 (#4216237)

    Java8はサポートが長い。ディストリビューションによっては11より長く設定されている。

    Oracle Java
    Extended Support期限で比べれば
    Java8は、2030年12月まで
    Java11は、2026年9月まで
    と、Java8がJava11を逆転している。
    https://www.oracle.com/jp/java/technologies/java-se-support-roadmap.html [oracle.com]

    Adoptium
    Java8は、2026年5月まで
    Java11は、2024年10月まで
    と、Java8の方が長い。
    https://adoptium.net/support.html [adoptium.net]

    Amazon Correto
    Java8は、2026年6月まで
    Java11は、2027年9月まで
    こちらはJava11の方が長い(それでも1年ちょっとしか違わない)
    https://aws.amazon.com/jp/corretto/faqs/ [amazon.com]

    Java8がそれなりに長生きなので、というよりはJava11の余命がそれほど長くないので、
    サポートのことだけ考えるなら、わざわざJava11に上げる動機が小さい。
    そこまでいくなら、今のシステムをもう少し粘って、一足飛びにJava17を目指した方がいい、となる。

  • by Anonymous Coward on 2022年03月15日 14時24分 (#4215931)

    Javaが生き残ってる気がしないでもない

    • by Anonymous Coward

      マイクラに限らずマルチプラットフォームはJava以外の選択肢無いようなものだったし、お堅いアプリケーションも同様でしょ。
      .NETで代替できるようになったのなんてここ数年の話だし。

      • by Anonymous Coward

        ここ数年のマルチプラットフォームアプリはJavascriptが主流でしょ。

        • by Anonymous Coward on 2022年03月16日 5時58分 (#4216281)

          EclipseがJavascriptで動かされる世界線とか絶対に行きたくないのだ。

          親コメント
          • by Anonymous Coward

            VSCode「呼んだ?」

          • by Anonymous Coward

            Javaアプレットの出番かな?

          • by Anonymous Coward

            次の世代のEclipse は、JavaScriptやで。
            http://www.eclipse.org/che/ [eclipse.org]
            まぁVS Codeの再実装でしかないので、VS Code 使いたいけどMS製品触りたくないというコアなアンチMS専用

            https://theia-ide.org/ [theia-ide.org]
            こちらもEclipseの後継プロジェクトを目指してるやつだが、こっちはVS Code使いたいけど、MSなのがイヤだから作り直してるって主張を隠してすらない。

        • by Anonymous Coward

          マイクラ的なソフトのマルチプラットフォームは、ここ数年でもJavaScriptでは全然代替できてないでしょ。
          普通にC++とかC#でマルチプラットフォームしてるよ。

          • マインクラフトも、統合版はC++ですしね。

            元々はPC用のJava版と、各ゲームコンソール向けの移植版、という構成でしたが、
            Android/iOS向けの旧 Pocket Editionを、Windows/Xbox One/PS4/Switchなどを加えてクロスプラットフォーム化したのが統合版。

            今では統合版の方が売れた本数は多いけど、
            自前サーバを立てられるとか、MODがものすごく豊富とか、統合版に出来ないことがあるので、
            未だにJava版の生き残っているというか二本立てになってしまっているという…

            親コメント
      • by Anonymous Coward

        昨今はUnityやUEのお陰で言語に依らないマルチプラットフォームが実現できてますね。

        • by Anonymous Coward

          理論上は言語によらないと言っても事実上C#でしょ。

        • by Anonymous Coward

          Unreal EngineはC++ですし、どの辺りが言語に依らないのでしょうか

    • by Anonymous Coward

      一番の大口はAndroidじゃないの?

    • by Anonymous Coward

      Jenkinsがなければ業務から捨ててる。
      Java捨てる為だけに他のCIに乗り換えるほどでもないので残してあるけど。

  • by Anonymous Coward on 2022年03月15日 14時33分 (#4215938)

    ここ数年はJava15を使ってる。
    16は、えーと忘れたけどEclipseかTomcatかJerseyか何か、すげえ細かい部分で都合が悪くて時期尚早だと思った。

    それと同時にdotnetにも浮気してる。

    • Javaのバージョンを15から16にあげることで動作しなくなるのであればJEP 396: Strongly Encapsulate JDK Internals by Default [java.net]が一番該当すると思います。

      JEP 396はModule Systemの導入で過去のJavaプログラムがいきなり動作しなくなることを避けるためのModule Systemで禁止されているクラスやメソッドへのアクセスを制御するオプション"--illegal-access"のデフォルト値を"permit"にしていたものを"deny"に変更であるため動かなくなることがよくあります。

      親コメント
    • by Anonymous Coward

      Javaの都合というかTomcat 10がimportするパッケージ名を javax.servlet.* から jakarta.servlet.* に変えないといけないというクソオブクソ仕様にしてるせいじゃないでしょうかね。

      • by Anonymous Coward on 2022年03月15日 16時36分 (#4216022)

        Write once, rewrite anywhere/anytime

        親コメント
        • by Anonymous Coward

          Write once apon a time, !run anymore

      • by Anonymous Coward

        それはOracleによる知財の扱いがクソofクソなせいで、やりたくてやってるわけじゃないんですよね……。

        # 知財関連についてはほんとにもうOracleしね、としか。
        # OpenOfficeの件といい、Hudsonの件といい、Oracle含めて誰も幸せにならなかったじゃねーか(´・ω・`)
        ## 誰か特定個人の戦犯いるんじゃなかろーか。(ラリー・エリソンだったりして)

        • by Anonymous Coward

          Oracleは昔からライセンスソリューションの墓場です。
          SCOっとお眠りください。

  • by Anonymous Coward on 2022年03月15日 18時04分 (#4216080)

    パブリックJREが使えるのはLTSではJava 8まで。Java 11以降ではアプリにプライベートJREを作成して同梱しなければならない

  • by Anonymous Coward on 2022年03月15日 20時26分 (#4216147)

    勘弁して欲しい。

    古いレガシーコードをサポートする方がコスト高だとなんで分からんのだ。
    やっぱりコードが読めない管理職って諸悪の根源だな。

  • by Anonymous Coward on 2022年03月15日 21時32分 (#4216180)

    Java8までしかないんだよお。

    • by Anonymous Coward

      OpenWebStartはけっこういい出来だと思うんだけど…そういう話でもないのか

      この"8強い"って、
       コンシューマOSのコンパネが8までしかなくて、かつ自動削除されることがない
       8の公式での扱いもずっと生きてる(Oracle・Adoptとも)
         → どの企業さんのJREも8のまんま
           → Javaアプリが8対応し続けさせられる
      という話だと思ってた

      言語としては仕事でコアに使わないし別に嫌いじゃないな、正確にはKotlinがお気に入りなんだが
      ヘルスバーグ言語が軒並み肌に合わないってのも大きい

  • by Anonymous Coward on 2022年03月16日 9時49分 (#4216377)

    Javaの実行環境の数はAndoroidが一番多いよね。そのAndroidがJava8なのが原因なんじゃないの?
    リンク先読まずのコメントなんで外してたらすまん。

  • by Anonymous Coward on 2022年03月19日 15時17分 (#4218429)

    Jenkinsとかはなんとかなんとかなったんだけど

    GitBucketのバージョンあげはwar入れ替えるだけで済むと
    いわれてたのにやってみるとあげに失敗して
    OpenJDKにしてみたら立ち上がるものの途中でスタックトレースを吐く
    無理そうなのでJava8残してる

    GitBucket内蔵のデータベースのJava版のSQLiteみたいなやつがあって
    こいつの使い方を調べれば移行もできるかとも思うけどそのまま

typodupeerror

一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy

読み込み中...