Track: Modern Java Innovations

Location: Broadway Ballroom South, 6th fl.

Day of week: Tuesday

Now that Java has settled into a six month release model, we are seeing significant innovation at a very rapid pace.  This track will cover the new features in the recent and near-future releases of Java and the JVM.  We will also discuss how these additions and changes offer new, modern functionality and higher performance to real-world Java applications. We’ll hear about modern Java’s influence ranging from cloud native to IoT, serverless to low-latency data stores, machine learning to scalability, in a variety of application domains.

Track Host: Jeanne Boyarsky

Java developer and ScrumMaster

Jeanne Boyarsky is a Java developer and part time ScrumMaster. She co-authored Wiley’s OCA/OCP 8 certification books and is updating them for the Java 11. In addition to volunteering at CodeRanch, she mentors the programmers on a high school robotics team and won a mentorship award. In the last year, Jeanne has spoken at conferences including Oracle Code One, DevNexus and QCon.

10:35am - 11:25am

Java Futures, 2019 Edition

Since last year, we've seen two more major versions of the JDK!  What's changed in the last year, and what's coming down the road?  Join Java Language Architect Brian Goetz in a whirlwind tour of just some of the features coming to Java next.

Brian Goetz, Java Language Architect @Oracle

11:50am - 12:40pm

The Trouble with Memory

When developers and operations are asked: what is the biggest performance bottleneck you face on a regular basis, it's rare that memory inefficiency comes up as an answer. Yet our observations suggest that approximately 60% of all Java applications suffer from this problem.  We also see this inefficiency in new (Java 11/12) and older versions of Java as well as Scala, Ruby, Kotlin, Clojure, Groovy, et al.  We’ve also seen it in C#/CLR applications, on Android devices, in the cloud, on bare metal systems and just about everywhere. There are many reasons why this bottleneck is being overlooked. Quite often this memory inefficiency hides itself as lower application throughput and longer-tail latency events.  These other non-memory issues then take the mistaken blame.  In this session, we’ll look at the telltale signs that your JVM based application is in that 60% memory inefficiency area, and demonstrate steps you can take with your Java application to attack this problem.

Kirk Pepperdine, Java Performance Expert & Java Champion

1:40pm - 2:30pm

Maximizing Performance with GraalVM

GraalVM project enhances the Java ecosystem with an integrated, polyglot, high-performance execution environment for dynamic, static, and native languages. GraalVM supports Java, Scala, Kotlin, Groovy, and other JVM-based languages. At the same time, it can run the dynamic scripting languages JavaScript including node.js, Ruby, R, and Python.  

In this session we will discuss the best practices for Java code and compiler configurations to maximize performance with GraalVM and how to measure performance in a reliable manner. We will talk about how to achieve minimal memory footprint and binary size of GraalVM native images — programs compiled ahead of time to native executables. A comparison of profile-guided optimizations for ahead-of-time compilation and just-in-time compilation will show the benefits and drawbacks of the two approaches. After this session you will have a better idea how to use GraalVM for the maximum potential to run your applications faster!

Thomas Wuerthinger, Graal Compiler Architect @Oracle

2:55pm - 3:45pm

Are We Really Cloud-Native?

As Java developers we are used to adjusting ourselves in heterogeneous environments and so over the last ten years or so we gained experience with PaaS, VMs, Containers, DevOps, Continuous Integration and Microservices Architectures. Now a new phenomena arises: building greenfield applications with the intent of using agile application development and architecting specifically for the Cloud a.k.a Cloud Native Computing. But are we really Cloud-Native because we use the latest and greatest in technology and run it on a (public) cloud platform? The modern Cloud is much more than just a virtualization platform. And is Java even a natural fit in such environments?   

In this talk I will go beyond the hype of being Cloud-Native and focus instead on what being Cloud-Native actually requires in terms of skills and experience for Java Developers and how it will affect and impact traditional systems design.

Bert Ertman, Director of Technology @Luminis_eu

4:10pm - 5:00pm

Panel: Which Java Vendor Should I Choose?

Many vendors provide free and paid versions of Java. How do you know which one to choose and for which use case? You probably wouldn’t use the same JDK for Cloud, IoT and more. This session will provide an animated discussion to help you pick which JDK makes sense for your organization. We will have members of the JCP EC, vendors and local companies participating in a lively discussion.

Jeanne Boyarsky, Java developer and ScrumMaster
Simon Ritter, Deputy CTO @Azul
Tony Printezis, JVM/GC Engineer @Twitter, JCP Executive Committee, & Previous G1GC Tech Lead
Sai Sharan Donthi, Assistant Vice President @CreditSuisse

5:25pm - 6:15pm

Beyond Entitlements for Cloud-Native

A Policy Engine is a tool that allows for checking user privileges as well as evaluate a responsibility matrix based on dynamic data for a given user. A Policy Engine is not only an Entitlement Management System but also provides for functional evaluation of conditions that result in deterministic responsibilities for a given user or actor.

This session shows how we use Open Policy Agent with Spring Boot and HOCON to produce a responsibility management solution that scales to volume and performance needs. We also show some hiccups that we faced while deriving the most optimal solution for our needs. A short explanation of some tooling we built for validating the policy files in the IDE will also be discussed.

Chandra Guntur, Sr. Principal Architect, Resilient Systems Engineering @BNYMellon
Hong Liu, Principal Developer, Resilient Systems Engineering @BNYMellon

Tracks

Monday, 24 June

Tuesday, 25 June

Wednesday, 26 June