Talk

In the last 25 years, the Java Collections Framework has become arguably the most used data structures on the planet, part of everyday life for millions of developers. And yet, the world in which the Collections Framework was designed is very different from the one we inhabit now. How should we avoid pitfalls from older paradigms, and how do we teach a 25-year-old framework to embrace current concepts? We’ll cover the following topics:
– Concurrent programming is driving Java towards a functional style, but collections were designed around in-place mutation. Does unmodifiability help? Should persistent data structures now be added? We’ll argue these questions, with examples to illustrate the tradeoffs;
– Anything as complex and long-lived as the collections framework is bound to attract controversies, which we’ll explain;
– We’ll take some examples of code using collections and improve them, discovering good practices as we go;
– The Collections Framework is fundamentally about shared abstractions. Is the current set of abstractions sufficient, and if not, what is missing? We’ll discuss some new abstractions we’re exploring for the future.
This session is for every Java developer who needs to use the collections framework – that’s every Java developer. You’ll leave with a deeper understanding of the design forces that shaped the framework, and with sharpened practical knowledge of how to get the very best from it, and some ideas for where the framework is heading.
Maurice Naftalin
Morningside Light Ltd
Five decades working in IT: developer, designer, architect, manager, teacher, and author. Working with Java since 1.0. Author, Mastering Lambdas; co-author, Java Generics and Collections. Disorganises the unconference JAlba. Java Champion. Speaks at conferences a lot.
Stuart Marks
Oracle
Stuart Marks is the JDK Core Libraries project lead in the Java
Platform Group at Oracle. His areas of expertise include Collections,
Lambdas, and Streams. As his alter ego "Dr Deprecator" he also works
on Java's deprecation mechanism. Stuart previously worked on JavaFX
and Java ME at Sun Microsystems. He has over thirty years of software
platform product development experience in the areas of window
systems, interactive graphics, payments, and mobile and embedded
systems. Stuart holds a Master's degree in Computer Science and a
Bachelor's degree in Electrical Engineering from Stanford University.