||New Reviews| |Software Methodologies| |Popular Science| |AI/Machine Learning| |Programming| |Java| |Linux/Open Source| |XML| |Software Tools| |Other| |Web| |Tutorials| |All By Date| |All By Title| |Resources| |About||
Keywords: Programming, Java, lambda expression
Title: Modern Java Recipes
Author: Ken Kousen
Level: Intermediate Java
Verdict: A solid introduction to Java 8
For those of us who have been coding in Java since before the days of Generics there are times when modern Java code looks like anything but Java. All computer languages evolve and adapt, but in the case of Java the rate of change in the last few years seems pretty intense — with Java 10 and 11 already waiting in the wings as of this writing. Given the scale of some of the changes in Java 8 and 9, you might be in need of some help in getting to grips with things. Which is where Ken Kousen's Modern Java Recipes steps in.
This is a book explicitly written to help experienced Java developers get to grips with some of the newer features of the language. It is definitely not the place for a beginning developer — you are expected to have a good grasp of the language and of the kinds of use-cases that the book presents as recipes. So if you need to learn Java, or your knowledge of the basics is pretty sketchy then you really need to be looking elsewhere.
The Recipes or Cookbook format is well-established in programming books. They can vary both by the depth of material included and by the degree of abstraction offered. Where some recipes manuals are very concrete in their examples, this one is fairly high level. For example recipes are mainly of the type 'Optional flatMap versus map' or 'Check sorting using reduce' rather than of the 'how to do x using y'. There's also a certain terseness to the text — which is no bad thing given that some recipes books weigh in at 700 or 800 pages (in contrast to the 300 pages here).
For those really starting out with catching up on streams and lambda expression the opening chapters are probably the most important in the book ? particularly the 'Basics' chapter. Here's your fast introduction to Java 8 - material which is expanded and used throughout the rest of the book. There's some coverage of Java 9 too, but that?s mostly in a final chapter at the end of the book. In addition to introducing the new language features, the book also delves into the libraries. There?s coverage of java.util.function, file i/o, java.time, parallelism and concurrency and more.
Overall this is a solid source of information for the practiced Java developer ? it' not one of those door-stopper books that is overly verbose and includes too much introductory material. At times the text could have done with a bit more context — for example explaining the benefits of some of the newer idioms compared to the old ones. But perhaps as your fluency in modern Java improves the benefits become more obvious…