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
jPrime - Java, Life is Short!
Search
Kevin Dubois
May 28, 2024
Programming
0
150
jPrime - Java, Life is Short!
Kevin Dubois
May 28, 2024
Tweet
Share
More Decks by Kevin Dubois
See All by Kevin Dubois
KubeCon China - Progressive Delivery made easy with Argo Rollouts
kdubois
2
52
DevTalks 25 - Create your own AI-infused Java apps with ease
kdubois
2
140
Boston JUG - From 0 to Production-Grade with Kubernetes-Native Java
kdubois
0
44
Devoxx UK 2025 - Serverless Java in Action: Cloud Agnostic Design Patterns and Tips
kdubois
0
76
Devoxx UK - Java Meets AI: Build LLM-Powered Apps with LangChain4j
kdubois
2
140
Devoxx Greece - Create AI Infused Java Apps with LangChain4j and Quarkus
kdubois
0
21
DevNexus - Create AI Infused Java Apps with LangChain4j
kdubois
1
240
JFokus - Create AI-infused Java Apps with LangChain4j and Quarkus
kdubois
1
71
jChampions - Serverless Java in Action: Cloud Agnostic Design Patterns and Tips
kdubois
0
47
Other Decks in Programming
See All in Programming
AIエージェントはこう育てる - GitHub Copilot Agentとチームの共進化サイクル
koboriakira
0
380
Select API from Kotlin Coroutine
jmatsu
1
190
High-Level Programming Languages in AI Era -Human Thought and Mind-
hayat01sh1da
PRO
0
270
Java on Azure で LangGraph!
kohei3110
0
170
Azure AI Foundryではじめてのマルチエージェントワークフロー
seosoft
0
130
Julia という言語について (FP in Julia « SIDE: F ») for 関数型まつり2025
antimon2
3
980
地方に住むエンジニアの残酷な現実とキャリア論
ichimichi
5
1.3k
「Cursor/Devin全社導入の理想と現実」のその後
saitoryc
0
160
GitHub Copilot and GitHub Codespaces Hands-on
ymd65536
1
120
イベントストーミング図からコードへの変換手順 / Procedure for Converting Event Storming Diagrams to Code
nrslib
1
400
Enterprise Web App. Development (2): Version Control Tool Training Ver. 5.1
knakagawa
1
120
来たるべき 8.0 に備えて React 19 新機能と React Router 固有機能の取捨選択とすり合わせを考える
oukayuka
2
860
Featured
See All Featured
The Cult of Friendly URLs
andyhume
79
6.5k
Statistics for Hackers
jakevdp
799
220k
Six Lessons from altMBA
skipperchong
28
3.8k
Docker and Python
trallard
44
3.4k
GraphQLとの向き合い方2022年版
quramy
48
14k
Embracing the Ebb and Flow
colly
86
4.7k
Building an army of robots
kneath
306
45k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Why Our Code Smells
bkeepers
PRO
337
57k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
The World Runs on Bad Software
bkeepers
PRO
69
11k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.6k
Transcript
@kevindubois Java, Life is Short! Kevin Dubois, Principal Developer Advocate,
Red Hat @kevindubois
@kevindubois Kevin Dubois ★ Principal Developer Advocate at Red Hat
★ Based in Belgium ★ 🗣 Speak English, Dutch, French, Italian ★ Open Source Contributor (Quarkus, Camel, Knative, ..) @
[email protected]
youtube.com/@thekevindubois linkedin.com/in/kevindubois github.com/kdubois @kevindubois.com
@kevindubois https://openjdk.org/projects/amber/ + https://openjdk.org/jeps/445
@kevindubois $ javac HelloWorld.java * $ java HelloWorld Hello World
* https://openjdk.org/jeps/330
@kevindubois $ jbang init Main.java $ jbang Main.java https://jbang.dev
@kevindubois $ jbang init --template=cli hello.java https://jbang.dev
@kevindubois GPT jbang --preview init cat.java “Print a cat” jbang
--preview init cli.java "create a currency converter from Euro to Dollars" https://jbang.dev
@kevindubois Managing multiple (Java) versions Legacy project running Java 8
“Newer projects”: Java 11 “State of the art”: Java 17 “YOLO”: Java 21 or *gasp* 22/23ea Vendor supported: Java 21 Temurin GraalVM: 21
@kevindubois https://sdkman.io $ sdk list java $ sdk install java
21.0.3-tem $ sdk install java 23.ea.23-open $ sdk use java 21.0.3-tem …. $ sdk install maven $ sdk install jbang $ sdk upgrade jbang $ sdk install quarkus
@kevindubois Code. Compile. Deploy. Run & Test. Repeat.
@kevindubois https://quarkus.io/get-started/
@kevindubois https://testcontainers.org
@kevindubois Dev Services https://quarkus.io/guides/dev-services ❤
@kevindubois Developer Flow Outer loop Inner loop Pull/Merge Request Production
Build / Package Code Push Debug Code Review Build Deploy Security Tests Compliance Inner loop Outer loop Developer Test
@kevindubois Containers! Cloud! Kubernetes! Serverless!
@kevindubois
@kevindubois $ quarkus image build <jib/docker/buildpacks> https://www.kevindubois.com/2023/04/25/build-java-container-images-in-seconds-using-quarkus-cli/ podman-desktop.io
@kevindubois Run Containers (and AI Models!) Locally with Ease Podman
Desktop https://youtu.be/Zogg2c1z1P0
@kevindubois https://developers.redhat.com/developer-sandbox
@kevindubois apiVersion: v1 kind: Service metadata: name: code-with-quarkus spec: ports:
- name: https port: 443 protocol: TCP targetPort: 8443 - name: http port: 80 protocol: TCP targetPort: 8080 selector: app.kubernetes.io/name: code-with-quarkus app.kubernetes.io/version: 1.0.0-SNAPSHOT type: ClusterIP apiVersion: apps/v1 kind: Deployment metadata: name: code-with-quarkus spec: replicas: 1 selector: matchLabels: app.kubernetes.io/version: 1.0.0-SNAPSHOT app.kubernetes.io/name: code-with-quarkus template: spec: containers: - env: - name: KUBERNETES_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace image: quay.io/kevindubois/code-with-quarkus:1.0.0 imagePullPolicy: Always name: code-with-quarkus ports: - containerPort: 8080 name: http protocol: TCP - containerPort: 8443 name: https protocol: TCP serviceAccountName: code-with-quarkus
@kevindubois “Regular Kubernetes” $ quarkus extension add kubernetes $ quarkus
deploy Serverless with Knative $ quarkus deploy knative or functions: quarkus ext add funky || kn func create
@kevindubois https://microprofile.io/
@kevindubois Release aftercare
@kevindubois Observability
@kevindubois https://opentelemetry.io/ https://github.com/kdubois/quarkus-observability
@kevindubois Metrics https://micrometer.io/ https://github.com/kdubois/quarkus-observability
@kevindubois Releasing Distributed Apps
@kevindubois JReleaser https://jreleaser.org https://github.com/kdubois/quarkus-jreleaser
@kevindubois $ jreleaser init $ jreleaser assemble $ jreleaser full-release
https://jreleaser.org https://github.com/kdubois/quarkus-jreleaser mvn -Pnative,dist package mvn -Prelease jreleaser:full-release
@kevindubois
@kevindubois tomorrow at 10am: Hands-on Lab: Build AI-powered applications with
Java (and Quarkus)
@kevindubois Free Developer e-Books! https://developers.redhat.com/eventtutorials
@kevindubois Start exploring in the OpenShift Sandbox. Learn containers, Kubernetes,
and OpenShift in your browser. developers.redhat.com/developer-sandbox Try Red Hat's products and technologies without setup or configuration.
@kevindubois Thank you! @
[email protected]
youtube.com/@thekevindubois linkedin.com/in/kevindubois github.com/kdubois @kevindubois.com