Help us understand the problem. What is going on with this article?

ここ5年ほどのJavaを簡単に振り返ってみる

More than 1 year has passed since last update.

転職が決まって、転職先でJavaを使うことになるのでブログで書いた記事をこちらにも投稿して見る。

WikipediaのページJDK公式ページによると、大体こんな感じ。
2014年3月 Java8(ラムダ式、型アノテーション、Date and Time API 、JavaFX(Swingより高機能なGUIツール)など)
2017年9月 Java9(言語レベルでのモジュール化のサポートなど)
2018年3月 Java10(ローカル変数型推論など)
2018年9月 Java11(ネストベースのアクセスコントロールなど、OracleJDKの有償化!!
2019年3月 Java12(JVM定数のAPIなど)

こうして見ると、5年前のJava8で色々な機能が追加されたのが目につく。中でも、今更ながらラムダ式の導入はかなり大きかったのではないかと。
ラムダ式の例としては、こんな感じ。

package Lambdatest;
import java.util.function.*;

public class LambdaTest {
    public static void main(String[] args) {
        double x1 = 3.0;
        double y1 = 4.0;
        BiFunction<Double, Double, Double> z = (x, y) -> Math.sqrt(x * x + y * y);
        System.out.println(z.apply(x1, y1));
    }
}

これと同じことをラムダ式を使わずにやろうとすると、無名クラスを使ったり、結構ややこしいことになるんではと思う。
そういえば、C++も言語仕様が大きく追加されたC++11からラムダ式が使えるようになったんだったな。

他にも色々な機能が増えて、ここ数年で本当に進歩したんだなあ。とはいえ、いいことばかりではなくJava11からOracleJDKが有償化されてしまった(個人で使う分には大丈夫みたいですが)のは多くの人にとっては痛そうですね。。。OpenJDKの方は無償で使うことができるのですが、サポート期間が短かったりするので、悩みどころですね。

追記

コメント欄で情報をいただいたので、少しだけ追記します。
Amazon CorrettoというOpenJDK互換の無償のディストリビューションがあるようです。インストール方法などはこちらを参考にして見てください。

yk0807
C++プログラマー、PHPプログラマーを経て現在はJava(SpringBoot)、TypeScript(Angular, React)をメインに使用しています。 よろしくお願いします。
http://yk0807.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away