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.
Using streams everywhere: is that really a good idea? Certainly, stream code is often much clearer and more concise than iteration over a collection. But sometimes a stream solution requires a complex combination of collectors, reduction over a primitive stream, or nested FlatMap operations, and the verdict isn’t so obvious. In this talk, we’ll look at some sample use cases, evolve the best solutions we can, in both imperative and functional styles, and then argue over which is better. You’ll get a vote too!
This session is for everyone who needs to write code in Java for bulk data processing – every Java developer, in fact. You’ll leave hopefully entertained, and with a better idea of the use cases where streams excel, and where you’re better staying with old-fashioned ways.
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.
Searching for speaker images...