Top positive review
2 people found this helpful
A soon to be classic in the essential list of Java books!
on 23 April 2014
In a nutshell: If you are looking for a concise and high-impact guide to the core features of Java 8, then you've found the right book! Whether you're just getting started with Java, or are a seasoned programmer, this book will help you get to grips with the new JDK 8 essentials such as Lambdas and Streams
I'm sure many people browsing this book will have heard about the recent (March '14) release of Java JDK 8 and all of the associated excitement about 'the biggest language changes' since JDK 5, and no doubt you are looking to see if any of the current JDK 8 books are worth an addition to your programming bookshelf. My answer to that question for this book is a definite yes.
The book starts with a whistle-stop tour of the influences for the new language additions, such as Lambdas and Streams (with a nod to the much-vaunted 'functional programming'), and then launches into explaining and demonstrating these key features in a well-paced and logical fashion. The stand-out chapters for me are 3, 4 and 5, in which you get to see many practical examples of where and how the new syntax (and new way of thinking) can save a lot of boilerplate typing and can also lead to much more expressive code.
As a relatively seasoned Java programmer, the examples and associated explanations had me up-and-running with the new features over the course of a weekend, and left me plenty of room (and motivation) to start experimenting in my own time with my new-found knowledge.
Data parallelism is covered well in Chapter 6, and the essential topic of testing (and a few associated gotchas with the new Lambda-driven approach) is covered nicely in the following chapter. Another excellent chapter is 'Design and Architectural Principles', which walks through some of the well-known design patterns and demonstrates to you that all of your current pattern knowledge doesn't have to be thrown away when using a functional style of coding. There is also a great section in this chapter discussing how the new language features relate to Uncle Bob's SOLID principles, and if you get chance I would also recommend searching for a companion talk by Richard on the Skillsmatter website.
Personally I think this book will end up alongside the classic Java books that I recommend to anyone looking to truly master the language, and this list includes such classics as 'Effective Java', 'Java Concurrency In Practice', 'Java Generics and Collections' and 'The Well-grounded Java Developer'. Richard has done a great job of distilling the key elements of the new JDK 8 language feature, and presented them in a concise tour-de-force without skimping on detail. A job well done!
Disclaimer: I know Richard personally from his good work within the London Java Community, and was also a reviewer for an early version of this book. I have endeavoured to write an unbiased review, and would be happy to discuss any of my thoughts listed here via the review comments section below, or via personal communication. Anyone who has seen Richard present, or had the pleasure of pair-programming with him, will know he is very much the 'real deal' when it comes to Java wizardry, and so I whole-heartedly support his first foray into the world of publishing!