©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?