We’ve seen a number of groundbreaking changes in Java over the last year. With the Java ecosystem moving faster than ever, it’s important to stay current and up to date with each new release. This track is designed to help you learn more about the ever evolving Java landscape and see how you can incorporate these exciting new features and capabilities into your software.
Track: Modern Java Reloaded
Location: Majestic Complex, 6th fl
Day of week: Thursday
Track Host: Kristen O'Leary
Kristen O’Leary is an associate at Goldman Sachs in the Platform group, which is responsible for many of the firm’s technology tools and frameworks. Kristen has contributed several container, API, and performance enhancements to Eclipse Collections. She has also taught classes internally and externally about the framework.
10:35am - 11:25am
Efficient Fault Tolerant Java with Aeron Clustering
Distributed systems present a number of challenges. Node failure, unreliable networks, resource starvation, and even the unpredictability of time itself can, and do, make our systems complex and fragile. We deserve and can do better. In this session, we will talk about Aeron Clustering, a new means for deploying replicated state machines in Java. Replicated state machines are just a nice way to deploy elegant business logic. What new options are opened up to Java when you combine the speed and efficiency of Aeron with the consensus model of RAFT you might ask? Come to this talk to understand what a replicated and recorded stream of events can do for your business logic.
11:50am - 12:40pm
Invest in Your Java Katalogue
Companies had barely migrated to Java 8 when it was announced that Java would follow a 6-month release cycle. Java 9 was released last October and is already EOSL. Java 10 has now been released, but will become old news in September with the release of Java 11. For many developers, this release cycle requires you to rapidly learn brand new features so as to be current with the ever changing ecosystem.
Our answer for keeping up with Java/JVM language versions has been to develop and evolve a Java Katalogue, which is a set of Coding Katas that can help you learn specific Java language and library features. A code kata is an exercise in programming which helps hone your skills through practice and repetition. These Katas can be used to experiment with different Java versions, JVM languages and libraries. Katas are crucial for learning new skills – but how do you create a kata that teaches you all of the basics?
In this session, we will explain the approach we have taken in developing Java code katas, and discuss best practices around them. We will walk through a number of examples, include katas teaching Java 8, 9 and 10 features, Eclipse Collections, and the Java Time library.
By attending this session, you will learn how to invest in your own Java Katalogue to help you cope with the ever evolving Java landscape.
Aditi Mantri, Principal Developer @BNYMellon
1:40pm - 2:30pm
Effective Java, Third Edition - Keepin' it Effective
Since its release in 2001, Effective Java has been the de facto standard best-practices guide for the Java platform. The book was last updated in 2008, when Java 6 was released. In the intervening decade, the platform has had three major releases, introducing many new language and library features that significantly affect best practices. The recently released third edition of Effective Java contains one new chapter, fourteen new items, and numerous changes to existing items. This talk covers some highlights from the third edition, concentrating on streams and lambdas.
2:55pm - 3:45pm
Why Bother With Kotlin - Not Just Another Language Tour
Most presentations introducing a new programming language are really just simple language tours. A lot of interesting language features are shown but it's not always clear *why* one would choose to adopt that new language. This presentation will start by looking at the layout and syntax of Kotlin projects. We'll gain a grasp of broad strokes of Kotlin syntax. But from there we'll move to a more in-depth discussion how these new language features combine to present a compelling new alternative to the Java source language. We'll look at a few "big ticket" features of the language and its ecosystem that do more to distinguish Kotlin than mere syntax sugar alone can provide.
This is talk is largely driven by code from the IDE. Apart from some initial introductory slides, everything else happens in IDE or the command shell. The talk is designed to cover a handful of interesting bigger ticket items rather than every single little nuance of the language. Because, while syntax can be important, ultimately it's not a large factor when it comes to language adoption. Larger scale, dare I say, higher order features that can truly drive productivity ultimately win the day. This talk is designed to highlight some of those features.
4:10pm - 5:00pm
Java 11 - Keeping the Java Release Train on the Right Track
Java is now on a fast six-month release cycle. Many enterprises had just finished moving to Java 8 with its new features when Java 9 came out last September 2017. And as of today, the current release of the JDK is 10. These releases will provide enhancements to the JVM and the Java language and offer opportunities for rapid innovation for all Java developers. Every three years, there is a long-term support (LTS) release.
But many major enterprises with LTS are waiting for Java 11 which is the next long term support release before migrating their apps. Some enterprises are moving from Java 8 directly to Java 11.
There are significant new and useful features in the Java 11 releases such as a new local variable syntax for lambda parameters, the HTTP Client standard and a brand-new, low-latency garbage collector (Epsilon - JEP 318). This session will review code examples of these new features in Java 11, and also features of Java 10. We will also discuss the impact of the new Java release train on production code.
5:25pm - 6:15pm
"Yo... Ask Me Anything" - Panel of NY Senior Java Developers
Join 5 senior technologists from major enterprises in the New York area discuss their thoughts on the latest trends in Java. We'll discuss thoughts on the new release model, modules, modern garbage collectors, kotlin for the enterprise, Eclipse stewardship of JEE and even the rising complexity of the Java source language. Bring your questions for our New York panel of experts.
Don Raab, Managing Director @BNYMellon, Creator of Eclipse Collections
Chandra Guntur, Director @BNYMellon
Justin Lee, Principal Software Engineer @RedHat
Sai Sharan Donthi, Assistant Vice President @CreditSuisse
Tracks
-
Microservices: Patterns & Practices
Evolving, observing, persisting, and building modern microservices
-
Developer Experience: Level up Your Engineering Effectiveness
Improving the end to end developer experience - design, dev, test, deploy, operate/understand. Tools, techniques, and trends.
-
Modern Java Reloaded
Modern, Modular, fast, and effective Java. Pushing the boundaries of JDK 9 and beyond.
-
Modern User Interfaces: Screens and Beyond
Zero UI, voice, mobile: Interfaces pushing the boundary of what we consider to be the interface
-
Practical Machine Learning
Applied machine learning lessons for SWEs, including tech around TensorFlow, TPUs, Keras, Caffe, & more
-
Ethics in Computing
Inclusive technology, Ethics and politics of technology. Considering bias. Societal relationship with tech. Also the privacy problems we have today (e.g., GDPR, right to be forgotten)
-
Architectures You've Always Wondered About
Next-gen architectures from the most admired companies in software, such as Netflix, Google, Facebook, Twitter, Goldman Sachs
-
Modern CS in the Real World
Thoughts pushing software forward, including consensus, CRDT's, formal methods, & probalistic programming
-
Container and Orchestration Platforms in Action
Runtime containers, libraries, and services that power microservices
-
Finding the Serverless Sweetspot
Stories about the pains and gains from migrating to Serverless.
-
Chaos, Complexity, and Resilience
Lessons building resilient systems and the war stories that drove their adoption
-
Real World Security
Practical lessons building, maintaining, and deploying secure systems
-
Blockchain Enabled
Exploring Smart contracts, oracles, sidechains, and what can/cannot be done with blockchain today.
-
21st Century Languages
Lessons learned from languages like Rust, Go-lang, Swift, Kotlin, and more.
-
Empowered Teams
Safely running inclusive teams that are autonomous and self-correcting