Slide 1

Slide 1 text

Coding in Java with Joy - A Quarkus talk Syed M Shaaf, Tech. Evangelist Create Java applications, easier, simpler and faster with Quarkus

Slide 2

Slide 2 text

Technical Evangelist at Red Hat. Java developer for 15 years Java AWT, Swing days CI/CD Struts, EE OpenStack/Kubernetes automation ..Vert.x/Quarkus Previously: Software Engineer at EnterpriseDB Java Consultant @syshaaf @sshaaf linkedin.com/in/shaaf/ About Me shaaf.dev

Slide 3

Slide 3 text

The fun in developing applications

Slide 4

Slide 4 text

This talk is all about development

Slide 5

Slide 5 text

What's happening to the world.. Deployment: multi-app, appserver App Lifecycle: Months Memory: 1GB+ RAM Startup Time: 10s of sec Deployment: Single App App Lifecycle: Days Memory: 100MBs+ RAM Startup Time: Seconds Deployment: Single App App Lifecycle: minutes/seconds Memory: 100MBs+ RAM Startup Time: Seconds

Slide 6

Slide 6 text

The hidden truth about Java and Containers ➔ Startup overhead ◆ # of classes, bytecode, JIT ➔ Memory overhead ◆ # of classes, metadata, compilation

Slide 7

Slide 7 text

This is how our world looks now…

Slide 8

Slide 8 text

Photo by Birmingham Museums Trust on Unsplash Java is Dead! Long live Java

Slide 9

Slide 9 text

WHAT IS QUARKUS? QUARK: elementary particle / US: hardest thing in computer science

Slide 10

Slide 10 text

This is how our world looks now…

Slide 11

Slide 11 text

Subatomic Java

Slide 12

Slide 12 text

Supersonic Java REST REST + CRUD

Slide 13

Slide 13 text

A Kubernetes Native Java stack tailored for GraalVM & OpenJDK HotSpot, crafted from the best of breed Java libraries and standards Supersonic. Subatomic. Java.

Slide 14

Slide 14 text

This is how our world looks now…

Slide 15

Slide 15 text

DEMO

Slide 16

Slide 16 text

What do I want? A cohesive platform for optimized developer joy: ● Zero config, live reload in the blink of an eye ● Reverse stack trace ● Dev Services ● Developer UI ● Continuous testing ● Remote Dev anywhere including K8s ● Deploy functions, microservices to k8s

Slide 17

Slide 17 text

Unifies Imperative and Reactive ● Combine both Reactive and imperative development in the same application ● Use the technology that fits your use-case ● Key for reactive systems based on event driven apps @Inject SayService say; @GET @Produces(MediaType.TEXT_PLAIN) public String hello() { return say.hello(); } @Inject @Channel(”kafka”) Publisher reactiveSay; @GET @Produces(MediaType.SERVER_SENT_EVENTS) public Publisher stream() { return reactiveSay; }

Slide 18

Slide 18 text

Best of Breed Frameworks & Standards Quarkus provides a cohesive, fun to use, full-stack framework by leveraging a growing list of over fifty best-of-breed libraries that you love and use. All wired on a standard backbone.

Slide 19

Slide 19 text

Resources from the presentation 19 Developer Sandbox How do I get started? ● Quarkus.io ● Dev Services (video) ● Remote dev ● Quarkus Insights ● Continuous testing ● Source code: demo app ● Quarkus for Spring Developers E-Book https://developers.redhat.com/developer-sandbox IDC Red Hat Quarkus Lab Validation Quarkus.io