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
25k
8
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Javaは今でも無償です、という話 / Java is still free
2019年6月1日にFGNエンジニアMeetup vol.1で登壇した資料です
Naoki Kishida
June 01, 2019
More Decks by Naoki Kishida
See All by Naoki Kishida
ソフトウェアエンジニアにとっての生成AI - 特性を知って使い倒す / generative ai for software enginner
kishida
7
2.1k
ローカルLLMでどこまでコードが書けるか -縮小版 / How much code can be written on a local LLM Shortened
kishida
2
250
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
12
5.3k
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
200
ローカルLLMでどこまでコードが書けるか / How much code can be written on a local LLM
kishida
2
560
ローカルLLM基礎知識 / local LLM basics 2025
kishida
30
17k
AIエージェントでのJava開発がはかどるMCPをAIを使って開発してみた / java mcp for jjug
kishida
5
1.3k
AIの弱点、やっぱりプログラミングは人間が(も)勉強しよう / YAPC AI and Programming
kishida
13
7k
海外登壇の心構え - コワクナイヨ - / how to prepare for a presentation abroad
kishida
2
220
Other Decks in Technology
See All in Technology
属人化を叩き割れ!「制作加速」と「安定化」の矛盾を打破する:8年目プロダクトが辿り着いた「ミスが起こり得ない」アセット制作フローの全貌
gree_tech
PRO
0
270
Kiro Crew入門 - 常駐エージェントの仕組みと使いどころ / Intro to Kiro Crew
k_adachi_01
1
800
VLMで2.3万枚のPyCon JP写真を検索!
terapyon
1
310
Go 1.27 の標準パッケージに uuid が入った!のでいろいろ喋る / go_127_std_go_uuid
convto
3
590
英語が話せなくてもKubeConスタッフに参加した話
yusuke427
2
1.1k
:syncing_time:
sksat
2
470
AIに持続⼒を与える 判断の⻑期記憶設計
eiei114
1
660
Sets in Go
ramalho
1
1.2k
社内の7割が使うデータ基盤を、 データチーム2人で回すためにやったこと
koh_yoshi
4
1.5k
猫付きpingコマンドを自作
uyuki234
0
290
RapidCopy2 Matrix I/Oエンジンによるファイルコピーソフトウェアの設計と実装
kengosawa2
1
300
Adding Right-to-Left support to your web application with CSS logical properties — Lessons from Redmine
vividtone
0
170
Featured
See All Featured
Marketing to machines
jonoalderson
1
5.7k
How GitHub (no longer) Works
holman
316
150k
Ethics towards AI in product and experience design
skipperchong
2
350
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
73
41k
Navigating Weather and Climate Data
rabernat
0
490
How to Talk to Developers About Accessibility
jct
2
520
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
430
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
640
Making the Leap to Tech Lead
cromwellryan
135
10k
Context Engineering - Making Every Token Count
addyosmani
9
1.1k
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
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は今でも無償です