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
AI時代に求められるプログラマの能力 / ability of programmer in AI era
kishida
13
5.8k
Java 23の概要とJava Web Frameworkの現状 / Java 23 and Java web framework
kishida
2
430
Java Webフレームワークの現状 / java web framework
kishida
10
10k
Is Object Oriented nesessary? COSCUP 2024
kishida
0
150
プログラムに組み込みたい人向けLLMの概要 / LLM for programmers
kishida
3
520
Javaの現状2024夏 / Java current status 2024 summer
kishida
6
2k
Java 22 Overview
kishida
1
350
Is Object-Oriented nessesary?
kishida
0
120
オブジェクト指向は必要なのか / Is object-oriented needed?
kishida
36
25k
Other Decks in Technology
See All in Technology
ゼロからわかる!!AWSの構成図を書いてみようワークショップ 問題&解答解説 #デッカイギ #羽田デッカイギおつ
_mossann_t
0
1.5k
メールヘッダーを見てみよう
hinono
0
110
PaaSの歴史と、 アプリケーションプラットフォームのこれから
jacopen
7
1.5k
AWS re:Invent 2024 re:Cap Taipei (for Developer): New Launches that facilitate Developer Workflow and Continuous Innovation
dwchiang
0
170
dbtを中心にして組織のアジリティとガバナンスのトレードオンを考えてみた
gappy50
0
290
コロプラのオンボーディングを採用から語りたい
colopl
5
1.3k
Unsafe.BitCast のすゝめ。
nenonaninu
0
200
深層学習と3Dキャプチャ・3Dモデル生成(土木学会応用力学委員会 応用数理・AIセミナー)
pfn
PRO
0
460
JAWS-UG20250116_iOSアプリエンジニアがAWSreInventに行ってきた(真面目編)
totokit4
0
140
30分でわかる「リスクから学ぶKubernetesコンテナセキュリティ」/30min-k8s-container-sec
mochizuki875
3
450
商品レコメンドでのexplicit negative feedbackの活用
alpicola
2
370
東京Ruby会議12 Ruby と Rust と私 / Tokyo RubyKaigi 12 Ruby, Rust and me
eagletmt
3
870
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
28
8.3k
How STYLIGHT went responsive
nonsquared
96
5.3k
Statistics for Hackers
jakevdp
797
220k
VelocityConf: Rendering Performance Case Studies
addyosmani
327
24k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.6k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
Testing 201, or: Great Expectations
jmmastey
41
7.2k
Product Roadmaps are Hard
iamctodd
PRO
50
11k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Producing Creativity
orderedlist
PRO
343
39k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
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は今でも無償です