Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Javaは今でも無償です、という話 / Java is still free
Search
Naoki Kishida
June 01, 2019
Technology
8
24k
Javaは今でも無償です、という話 / Java is still free
2019年6月1日にFGNエンジニアMeetup vol.1で登壇した資料です
Naoki Kishida
June 01, 2019
Tweet
Share
More Decks by Naoki Kishida
See All by Naoki Kishida
プログラムに組み込みたい人向けLLMの概要 / LLM for programmers
kishida
2
200
Javaの現状2024夏 / Java current status 2024 summer
kishida
4
1.4k
Java 22 Overview
kishida
1
260
Is Object-Oriented nessesary?
kishida
0
67
オブジェクト指向は必要なのか / Is object-oriented needed?
kishida
33
23k
AI時代を乗り切る実装力をつけよう / Get avility of implementation beyond AI era
kishida
2
5.2k
AI時代を生き抜くために処理をちゃんと書けるようになろう / write a executable process for AI era
kishida
24
14k
Javaは今どうなっているの? / how about java now
kishida
14
19k
動くコードを書こう / let's code a process
kishida
25
7.4k
Other Decks in Technology
See All in Technology
Datadog Cloud SIEMを使ってAWS環境の脅威を可視化した話/lifeistech-datadog-cloud-siem
gidajun
0
480
ゆめみのアクセシビリティの現在地と今後
ryokatsuse
3
290
AOAI Dev Day LLMシステム開発 Tips集
hirosatogamo
15
3.8k
[2024最新版]AWS Control Towerを使ったセキュアなマルチアカウント環境の作り方
hiashisan
0
270
CEL(Common Expression Language)で書いた条件にマッチしたIAM Policyを見つける / iam-policy-finder
fujiwara3
0
720
開発と事業を繋ぐ!SREのオブザーバビリティ戦略 ~ Developers Summit 2024 Summer ~
leveragestech
0
640
Git 研修 Basic【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
310
スレットハンティングについて知っておきたいこと
hacket
0
130
Classmethod流のPlatform Engineering / classmethod-platform-engineering-devio2024
tomoki10
0
480
エンジニア向け会社紹介資料
caddi_eng
14
230k
20240724_cm_odyssey_hibiyatech
hiashisan
0
110
What is DRE? - Road to SRE NEXT@広島
chanyou0311
3
630
Featured
See All Featured
Designing the Hi-DPI Web
ddemaree
276
34k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
78
15k
Thoughts on Productivity
jonyablonski
64
4.1k
Docker and Python
trallard
37
2.9k
Practical Orchestrator
shlominoach
185
10k
Large-scale JavaScript Application Architecture
addyosmani
506
110k
Infographics Made Easy
chrislema
238
18k
Side Projects
sachag
451
42k
Bash Introduction
62gerente
607
210k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
34
1.9k
Imperfection Machines: The Place of Print at Facebook
scottboms
262
13k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
121
18k
Transcript
Javaは今でも無償です という話 2019/6/1 FGNエンジニアMeetup vol.1 きしだ なおき
自己紹介 • きしだ なおき • LINE Fukuoka • @kis
Javaのダウンロード • 「個人的な使用や開発目的での使用など、特定の使用が無償で 許可されますが、以前のOracle Javaライセンスの下で認可され たその他の使用はできなくなりました」
無償で商用利用ができない?
Javaはオープンソース • Javaはクラスパス例外付GPLで開発されている
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 バイナリ
Javaのリリースサイクル • 半年に一回3月と9月に新バージョンをリリース • 最新バージョンは3月にリリースされたJava 12 • Java 13が開発中で9月にリリース予定 •
Oracle OpenJDK以外のディストリビューションは3年ごとに LTS(Long Term Support)を設定 • Java 11がLTS • 次のLTSはJava 17
どのディストリビューションを 使えばいいの? • 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/
OracleのJDKを無償で 本番で使いたいんだ! • GraalVMというのがあります • https://www.graalvm.org/ • Oracle Labが開発、提供 •
Java 8ベース • GraalVM CEは無償で利用できる • GraalVM EEは有償 • 性能が高め
GraalVM • Javaで書かれたJITコンパイラ”Graal”をベースにしたJVM • GraalはJava 10にもExperimentalとして搭載されている • 現在のC2コンパイラはCで書かれていてメンテナンス困難 • GraalをAOTコンパイラとして利用してJavaをネイティブイ
メージ化できる
GraalVM native-image • Javaの起動速度が高速化 • Javaのメモリ使用量を削減 https://medium.com/graalvm/lightweight-cloud-native-java-applications- 35d56bc45673
最近の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に対応
ついでにJavaの最近の言語拡張 • var(JDK10) • switch式(JDK 12, 13, preview) • Text
Block(JDK 13, preview) • パターンマッチング • record
var • ローカル変数型推論 • var list = new ArrayList<String>();
switch式 • switch文が式に var s = switch (n) { case
1, 2 -> "Hello"; case 3 -> "World"; default -> "!!!"; }
Text Blocks • 複数行テキスト String html = """ <html> <body>
<p>Hello, world</p> </body> </html> """;
パターンマッチング • パターンマッチングが来る! if (o instanceof String s) { System.out.println(s.trim());
}
record型 • 構造体のようなものが • record Point(int x, int y) {}
• パターンマッチも対応予定 if (p instanceof Point(var x, var y)) { System.out.printf("x:%d y:%d", x, y); }
まとめ • Javaは今でも無償です