Beneath the Planet of the Collections
In the last 25 years, the classes of the Java Collections Framework have become arguably the most used data structures on the planet, part of everyday life for millions of developers. So there’s a wealth of experience in how best to use them and in the pitfalls to avoid. And how well has the design has held up? How have collections changed with the changing priorities of the platform, and how should they change in the future? Things we'll consider:
– The need for concurrent programming is driving Java towards a more functional style, but collections were designed around in-place mutation. Should immutability now be added? We’ll argue this question back and forth, with examples from other frameworks to illustrate the tradeoffs;
– Anything as complex and long-lived as the collections framework is bound to attract controversies; we’ll explain some, and invite you to take sides;
– We’ll take some examples of code using collections and, with your help, we’ll improve them – and maybe discover some guidelines for good practice as we go;
– What about the next 25 years? We’ll look at some exciting ideas that might mean big changes in the way we program with collections.
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.
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, Oracle Ace Pro. Speaks at conferences a lot.
Stuart Marks
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.