java se state of the union - qcon san francisco · 2020-05-18 · java se state of the union gil...

54
©2016 Azul Systems, Inc. Java SE State Of The Union Gil Tene, CTO & co-Founder, Azul Systems @giltene

Upload: others

Post on 22-May-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

©2016 Azul Systems, Inc.

Java SEState Of The Union

Gil Tene, CTO & co-Founder, Azul Systems@giltene

©2016 Azul Systems, Inc.

Agenda

Brief introduction

Some history

Some more history & future speak

Some obligatory “What’s in Java 9?” stuff

Let’s chat

©2016 Azul Systems, Inc.

About me: Gil Tene

co-founder, CTO @Azul Systems

Have been working on “think different” GC approaches since 2002

A Long history building Virtual & Physical Machines, Operating Systems, Enterprise apps, etc...

I also depress people by pulling the wool up from over their eyes…

JCP EC member, OpenJDK contributor…

* working on real-world trash compaction issues, circa 2004

©2016 Azul Systems, Inc.

Java SEState Of The Union

Gil Tene, CTO & co-Founder, Azul Systems@giltene

©2016 Azul Systems, Inc.

A brief history of Java

©2016 Azul Systems, Inc.

1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10

The Java SE Timeline

©2016 Azul Systems, Inc.

1.0 1.1 1.2 1.3 1.4 5 6 7 8 9 10

The Java SE Timeline

©2016 Azul Systems, Inc.

1.0 1.1 1.2 1.3 1.4 5 6 7 8 9 10

The Java SE Timeline

Java 1.X J2SE 1.X Java SE XJ2SE 5

©2016 Azul Systems, Inc.

1.0 1.1 1.2 1.3 1.4 5 6 7 8 9 10

The Java SE Timeline

©2016 Azul Systems, Inc.

1.0 1.1 1.2 1.3

The Java SE Timeline

©2016 Azul Systems, Inc.

1.0 1.1 1.2 1.3

The Java SE Timeline

java.util.Collection

Weak refs

Reflection

Swing

©2016 Azul Systems, Inc.

1.2 1.3 1.4 5

The Java SE Timeline

java.util.Collection

Weak refsNIO

©2016 Azul Systems, Inc.

1.3 1.4 5 6 7

The Java SE Timeline

NIO Generics<>

java.util.concurrent

©2016 Azul Systems, Inc.

6 7 8 9 10

The Java SE Timeline

<>

Stream API

©2016 Azul Systems, Inc.

8 9 10

The Java SE Timeline

Stream API

<> ?

?

?

??

?

©2016 Azul Systems, Inc.

valuetypes

8 9 10

The Java SE Timeline

Stream API

<> ?

?

?

??

?

Jigsaw!HashMap<int>

Arrays 2.0

JNR/FFI

val? var?

©2016 Azul Systems, Inc.

How is Java Doing?

©2016 Azul Systems, Inc.

How is Java Doing?

Is Java still popular?

Are other things cooler?

Is it trending away?

©2016 Azul Systems, Inc.

How is Java Doing?

©2016 Azul Systems, Inc.

How is Java Doing?

©2016 Azul Systems, Inc.

How is Java Doing?

©2016 Azul Systems, Inc.

Java leaps and boundsA different historical view:

©2016 Azul Systems, Inc.

Java leaps and bounds

1995-2001: Server domination2001-2010: Applications

2010-2016+: Infrastructure

©2016 Azul Systems, Inc.

1995-2001: Server domination

2001-2010: Applications

2010-2016+: Infrastructure

Servlets JavaEEJDBC Pools

WebLogic WebSphere JBoss TomcatPortals Web Services SOA Data Grids

Hadoop Cassandra Lucene/Solr/Elastic

Spark ZookeeperKafka Storm…

©2016 Azul Systems, Inc.

The state of the union is GOOD

©2016 Azul Systems, Inc.

What’s in Java 9

©2016 Azul Systems, Inc.

What’s in Java 9

Modules

?

!

©2016 Azul Systems, Inc.

What’s in Java 9

Modules

?

!and

some other stuff…

©2016 Azul Systems, Inc.

What’s in Java 9

Modules

?

some other stuff…

©2016 Azul Systems, Inc.

What’s in Java 9

Modules

?

some other stuff…of the

©2016 Azul Systems, Inc.

©2016 Azul Systems, Inc.

Java has a REPL!

(read… eval… print… loop…)

©2016 Azul Systems, Inc.

Why is this important?

***(where “modern” starts with “LISP”)

Because virtually every other modern environment has one…

Java has a REPL!

©2016 Azul Systems, Inc.

©2016 Azul Systems, Inc.

VarHandles

“Define a standard means to invoke the equivalents of

java.util.concurrent.atomic and sun.misc.Unsafe operations upon object fields and array elements.”

©2016 Azul Systems, Inc.

Unsafe?

©2016 Azul Systems, Inc.

Unsafe?Safe UnsafeUnsafe UnsafeSafe Safe?Unsafe Safe

©2016 Azul Systems, Inc.

Unsafe?Safe Unsafe Unsafe Unsafe

Safe Safe? Unsafe Safe

©2016 Azul Systems, Inc.

Unsafe?Safe Unsafe Unsafe Unsafe

Safe Safe? Unsafe Safe

©2016 Azul Systems, Inc.

Unsafe?Is unsafe really going away?

No.

©2016 Azul Systems, Inc.

VarHandles

Also (finally) provides a fencing API

Supports ordering fences, but also:

©2016 Azul Systems, Inc.

©2016 Azul Systems, Inc.

Unified JVM Logging

Current Logging stuff:

©2016 Azul Systems, Inc.

Unified JVM Logging

New world order for logging: -Xlog

Look up Marcus Larsson’s excellent “Unified JVM Logging in JDK 9” from JavaOne 2016 [CON6225]

©2016 Azul Systems, Inc.

©2016 Azul Systems, Inc.

Spin-Wait Hints

My Favorite…

©2016 Azul Systems, Inc.

Spin-Wait Hints

Adds a single method to the JDK:

java.lang.Thread.onSpinWait()

Which does absolutely nothing…

but it does nothing faster…

©2016 Azul Systems, Inc.

java.lang.Thread.onSpinWait()

©2016 Azul Systems, Inc.

java.lang.Thread.onSpinWait()

©2016 Azul Systems, Inc.

©2016 Azul Systems, Inc.

©2016 Azul Systems, Inc.

So… what cool feature will make people move to

Java 9?

©2015 Azul Systems, Inc.

Q & A and

Open Discussion

©2015 Azul Systems, Inc.

Q & A and

Open Discussion

OpenJDK? JCP?

Valhala? Panama?

Venezuela?