Java 10, 11 & Beyond

Empower your developers #EYD

Juan Antonio Breña Moral

Quotes

  1. Highly productive teams grow their knowledge consciously, practicing continuous learning.
  2. The Challenge of Complexity Many things can put a project off course: bureaucracy, unclear objectives, and lack of resources, to name a few. But it is the approach to design that largely determines how complex software can become.

- Eric Evans (Domain Driving Design)

Quotes

  1. Fact 1: The most important factor in software work is not the tools and techniques used by the programmers but rather the quality of the programmers themselves.

-Robert L. Glass (Object Thinking)

Agenda

  1. What is Modern Java?
  2. Java 10 features
  3. Java 11 features
  4. OpenJDK projects
  5. Homework
  6. References
  7. Q&A

Educational Goals

  1. Explain the "Modern Java" philosophy
  2. Show features included with Java 10
  3. Show features that will appear in Java 11
  4. What happen in the OpenJDK projects?

Java Context

  1. Java Lifecycle
  2. Java Architecture
  3. Java & Containers

Java Lifecycle

Java Architecture

Java & Containers

What is modern Java?

  1. Definition
  2. JVM Adoption
  3. Spring Adoption
  4. Spring Boot Adoption
  5. Lombok
  6. AssertJ

What is modern Java?

!Definition

A legacy system, is a system with no tests

What is modern Java?

JVM Adoption

What is modern Java?

Java Frameworks market share

What is modern Java?

Spring Boot adoption

What is modern Java?

Lombok

Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java. Never write another getter or equals method again.

https://projectlombok.org/

What is modern Java?

AssertJ

Fluent assertions for java

http://joel-costigliola.github.io/assertj/

Java 10 features

http://openjdk.java.net/projects/jdk/10/

  1. 286: Local-Variable Type Inference
  2. 296: Consolidate the JDK Forest into a Single Repository
  3. 316: Heap Allocation on Alternative Memory Devices
  4. 317: Experimental Java-Based JIT Compiler
  5. 319: Root Certificates

Java 11 features

http://openjdk.java.net/projects/jdk/11/

  1. 321: HTTP Client (Standard)
  2. 323: Local-Variable Syntax for Lambda Parameters

OpenJDK projects

  1. Amber
  2. Valhalla
  3. Metropolis
  4. Panama
  5. Graal VM
  6. Adopt OpenJDK

Homework

  1. How to install multiple JVM?
  2. Did you review top libraries on Maven repository?
  3. Review module java.base from Oracle Javadocs (Online)

References

Articles

  1. The State of Java in 2018
  2. Rapid Java Innovation
  3. Cloud Native Java
  4. Characterizing and Optimizing Hotspot Parallel Garbage Collection on Multicore Systems
  5. Modern Java Development is Fast
  6. Better-java
  7. Improved Docker container integration with Java 10

Articles

  1. On-Call Rotations and Schedules
  2. What Team Structure is Right for DevOps to Flourish?
  3. 101 Profiling for Microservices
  4. Reactive Microservices in Kotlin
  5. Java 9 by Example

Books

Books

Books

Q&A

 @juanantoniobm
 https://ci.adoptopenjdk.net/
 https://github.com/jabrena
 https://www.juanantonio.info
"Pressure makes diamonds."
- George S. Patton Jr.