The Good, the Bad and the Ugly of Java API design

With Java being a technology that’s over 20 years old, its strict requirements on backward compatibility, and thus the difficulty of removing functionality, modern JDKs inevitably contain APIs that did not withstand the test of time, and for various reasons are now hard to use, or exhibit other signs of poor design. As a result, in the last 2 years, we’ve seen several attempts at modernizing Java, and quite a few new APIs that provide nice and clean alternatives to their older counterparts.

In this live-coding session, we explore a series of commonly used Java APIs which cause troubles for developers. Learning from their mistakes, we draw principles for clean API design, and see how these were applied to the new features in JDK 9, 10, 11, and 12. As part of this exploration, we focus on Collections, CompletableFuture, StackWalker, ProcessHandle, HTTP/2 client APIs, and more.

Come and find out how to make your code cleaner with the help of new features of modern JDKs, and figure out how to make your own APIs clean and pleasant to use by learning from Java’s mistakes!

Main language English Proposal
Audience level Intermediate
Type of presentation Slides and code

Miro Cupak

Miro is a Co-founder and VP Engineering at DNAstack, where he builds a leading genomics cloud platform. He is a Java enthusiast with expertise in distributed systems and middleware, passionate about genetics and making meaningful software. Miro is the creator of the largest search and discovery engine of human genetic data, and the author of a book on parallelization of genomic queries. In his spare time, he blogs and contributes to several open-source projects.

Company DNAstack