Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Javaは今でも無償です、という話 / Java is still free

Javaは今でも無償です、という話 / Java is still free

2019年6月1日にFGNエンジニアMeetup vol.1で登壇した資料です

Naoki Kishida

June 01, 2019
Tweet

More Decks by Naoki Kishida

Other Decks in Technology

Transcript

  1. Javaは今でも無償です
    という話
    2019/6/1 FGNエンジニアMeetup vol.1
    きしだ なおき

    View Slide

  2. 自己紹介
    • きしだ なおき
    • LINE Fukuoka
    • @kis

    View Slide

  3. Javaのダウンロード
    • 「個人的な使用や開発目的での使用など、特定の使用が無償で
    許可されますが、以前のOracle Javaライセンスの下で認可され
    たその他の使用はできなくなりました」

    View Slide

  4. 無償で商用利用ができない?

    View Slide

  5. Javaはオープンソース
    • Javaはクラスパス例外付GPLで開発されている

    View Slide

  6. Javaの開発体制
    • JavaはOpenJDKとして複数の会社や個人が開発に参加している
    • Javaはさまざまな会社や団体がバイナリを提供している
    OpenJDK
    Oracle
    Red Hat
    SAP
    Googleなど
    Oracle
    Amazon
    Red Hat
    Azul
    開発
    Oracle JDK
    Oracle OpenJDK
    Amazon Corretto
    Red Hat OpenJDK
    Zulu
    AdoptOpenJDK AdoptOpenJDK
    バイナリ

    View Slide

  7. Javaのリリースサイクル
    • 半年に一回3月と9月に新バージョンをリリース
    • 最新バージョンは3月にリリースされたJava 12
    • Java 13が開発中で9月にリリース予定
    • Oracle OpenJDK以外のディストリビューションは3年ごとに
    LTS(Long Term Support)を設定
    • Java 11がLTS
    • 次のLTSはJava 17

    View Slide

  8. どのディストリビューションを
    使えばいいの?
    • OSやクラウド、Appサーバーで提供されているものがあればそれ
    • Red Hat Enterprise LinuxやCentOS
    • Red Hat OpenJDK
    • Microsoft Azure
    • Azul Zulu
    • AWS(Amazon Linux)
    • Amazon Corretto(予定)
    • こだわりがなければAdoptOpenJDK
    • https://adoptopenjdk.net/
    • 個人の環境はOracle OpenJDKの最新版
    • http://jdk.java.net/

    View Slide

  9. OracleのJDKを無償で
    本番で使いたいんだ!
    • GraalVMというのがあります
    • https://www.graalvm.org/
    • Oracle Labが開発、提供
    • Java 8ベース
    • GraalVM CEは無償で利用できる
    • GraalVM EEは有償
    • 性能が高め

    View Slide

  10. GraalVM
    • Javaで書かれたJITコンパイラ”Graal”をベースにしたJVM
    • GraalはJava 10にもExperimentalとして搭載されている
    • 現在のC2コンパイラはCで書かれていてメンテナンス困難
    • GraalをAOTコンパイラとして利用してJavaをネイティブイ
    メージ化できる

    View Slide

  11. GraalVM native-image
    • Javaの起動速度が高速化
    • Javaのメモリ使用量を削減
    https://medium.com/graalvm/lightweight-cloud-native-java-applications-
    35d56bc45673

    View Slide

  12. 最近のJava Webフレームワーク
    • Helidon by Oracle
    • https://helidon.io/
    • Micronaut by Object Computing
    • https://micronaut.io/
    • Quarkus by Red Hat
    • https://quarkus.io/
    • 起動速度やメモリフットプリントを削減
    • GraalVM Native Imageに対応

    View Slide

  13. ついでにJavaの最近の言語拡張
    • var(JDK10)
    • switch式(JDK 12, 13, preview)
    • Text Block(JDK 13, preview)
    • パターンマッチング
    • record

    View Slide

  14. var
    • ローカル変数型推論
    • var list = new ArrayList();

    View Slide

  15. switch式
    • switch文が式に
    var s = switch (n) {
    case 1, 2 -> "Hello";
    case 3 -> "World";
    default -> "!!!";
    }

    View Slide

  16. Text Blocks
    • 複数行テキスト
    String html = """


    Hello, world


    """;

    View Slide

  17. パターンマッチング
    • パターンマッチングが来る!
    if (o instanceof String s) {
    System.out.println(s.trim());
    }

    View Slide

  18. record型
    • 構造体のようなものが
    • record Point(int x, int y) {}
    • パターンマッチも対応予定
    if (p instanceof Point(var x, var y)) {
    System.out.printf("x:%d y:%d", x, y);
    }

    View Slide

  19. まとめ
    • Javaは今でも無償です

    View Slide