Sunday 6 March 2016

Book Review: The Well-Grounded Java Developer - Vital techniques of Java 7 and polyglot programming

Book Name: The Well-Grounded Java Developer - vital techniques of Java 7 and polyglot programming




Straight from the horse's mouth:
The Well-Grounded Java Developer offers a fresh and practical look at new Java 7 features, new JVM languages, and the array of supporting technologies you need for the next generation of Java-based software.

About the book
The Well-Grounded Java Developer starts with thorough coverage of Java 7 features like try-with-resources and NIO.2. You'll then explore a cross-section of emerging JVM-based languages, including Groovy, Scala, and Clojure. You will find clear examples that are practical and that help you dig into dozens of valuable development techniques showcasing modern approaches to the dev process, concurrency, performance, and much more.
Written for readers familiar with Java. No experience with Java 7 or new JVM languages required.
What's inside
  • New Java 7 features
  • Tutorials on Groovy, Scala, and Clojure
  • Discovering multicore processing and concurrency
  • Functional programming with new JVM languages
  • Modern approaches to testing, build, and CI
About the reader
Written for readers familiar with Java. No experience with Java 7 or new JVM languages required.
About the authors
Ben Evans is a Tech Fellow of jClarity, a Java performance firm and a member of the Java Community Process Executive Committee. Martijn Verburg is the CEO of jClarity, a Java performance firm, co-leader of the London JUG, and a popular conference speaker.
First of all, let me thank to the authors of this book for their thorough research on  the mentioned topics (java 7 features, polyglot programming on JVM and related vital development techniques) and clear writing with a well-balanced theoretical and practical coverage.

My Personal Feedback

If you are newbie to java programming, I don't suggest you reading this book. Once you gain some relevant experience in the industry, reading this book will produce completely different outlook and shape your overall programming talent. (By the way, you may read my "New to Java - Getting Started Guide" and "Be familiar with Java 5 features" blogs.)

According to me, this book has definite potential to transform you a well-grounded java developer, if you have some development experience (may be at least 2-3 years) in building java based web or enterprise applications.

Part 1 of the book very nicely covers Java 7 features, specifically Project Coin and NIO.2. Apart from the Java 7 language specific learnings, there are many other interesting topics to understand in next chapters of this book.
(On a separate note, Java 8 had released many new features in Mar 2014. If you didn't get chance to see those yet, you may refer my "Java 8 - Highlights of new features and enhancements" blog.) 

Part 2 covers few vital programming techniques. Starting with Dependency Injection (DI), fundamentally it could be known to most java developers nowadays, as Spring DI is widely adopted framework in myriads of java projects. However, it is highly likely that Java Concurrency, Classloading, Nature of JVM bytecode and Performance Tuning fundamentals would be new to know for many developers.

Part 3 is the heart of the book, as I found this book as one of the best source to establish understanding on "Polyglot Programming on the JVM". It appreciably explains classification of various programming languages, how JVM supports 100+ alternative programming languages and when to use Java vs. alternative languages. Moreover, you can get features and syntax highlights of Groovy, Scala and Clojure. After reading this, you will start evaluating ability of different programming languages and may take acceptable risk to try power of new programming languages to deliver better solutions, as and when applicable. In short, reading this chapter will surely make you versatile programmer.

Part 4 includes essentials topics, which all java developers should be aware and attempt, if not yet! Here, you will practically understand power of unit testing using Test Driven Development, Build using Maven and Continuous Integration using Jenkins. Optionally, you may experiment rapid web development approaches over building traditional JSP/JSF based web application. Finally, it closes with few topics which Java developers should always be aware of what’s coming around the corner, however, some of those are already available now like Java 8 Lambdas.

Happy reading the Well-Grounded Java Developer book… :-)

Disclaimer
Views expressed here are solely my own and are not supported by the author or the publication or any associated entity of this book.