Original title : The Well-Grounded Java Developer: Vital techniques and polyglot programming
Author : B. Evans, M. Verburg
Translation of the book : Oleg Sivchenko
Release Date : Autumn 2013In the fall we have a new translation book on Java. The book has very good reviews and a high rating on the site
www.amazon.com .
')
Books about Java - perhaps the most common literature on a single programming language. Nevertheless, most books on Java fall into one of two categories: these are either introductory tutorials for beginners or highly specialized books.
Ben Evans and Martin Verburg, authors of the book “Java. A new generation of development "- practitioners from the London Java-community, which is part of the Java SE / EE Executive Committee of the Java Community Process.
When I first looked at the contents of the book “Java. A new generation of development ", I liked the name of the book, as well as the selection of topics. These topics, in my opinion, will be of interest to experienced Java developers who are constantly engaged in preparing solutions for customers who don’t find the time to try out new Java 7 functions, study in detail the subtleties of Java and the JVM (Java Virtual Machine), or to experiment with the main alternative languages ​​for JVM. I had to work with many serious Java developers who are fluent in Java, but have no time or incentive to get acquainted with the latest versions of Java or other languages ​​for the JVM until there is an acute practical need for this. This book offers an excellent quick introduction to topics like these for such busy developers. In total, one book highlights the main features of Java SE, and also provides introductory material on the three most popular alternative languages ​​for the Java Virtual Machine. In addition, the authors were able to examine in detail some topics of increased complexity, having mastered that a good Java developer can become excellent. In addition, the book contains information about modern tools for developing in Java.
The book "Java. A new generation of development "is divided into four parts, each of which includes several chapters.
Part 1: Java 7
Chapter 1, Introduction to Java 7, briefly discusses the Java language and platform, as well as some general characteristics of the Java language (code openness, compiled or interpreted nature, etc.). The remainder of the chapter discusses the features that have appeared in the language in the context of the Coin project. In particular, we are talking about strings in the switch construction, improved syntax of numeric literals, improved exception handling, try-with resources (automatic resource management), diamond-shaped syntax when working with operators, and simplified method calls with a variable number of arguments.
Chapter 2, "New I / O," provides a brief overview and historical information about non-blocking I / O in Java, followed by a detailed explanation of non-blocking I / O NIO.2 operating in Java 7. In this chapter, you will learn about the essential interface Path to work with NIO.2 and see how this new interface provides file I / O (when working with the Files class and other new and convenient mechanisms for handling files).
Part 2: Technology Needed
Part 2, Necessary Technologies, continues to look at the new features of Java 7, but the accents change from the first part. The first part deals, first of all, with the novelties of Java 7. The second part also considers innovations, but the content of this part is not a common acquaintance. The second part more deeply explores the "necessary technologies" that a good Java developer should understand. As stated in the introduction to this part, "we will delve into the study of the most important topics and technologies necessary for working with the modern Java language." These technologies include dependency injection (Chapter 3), concurrency (Chapter 4), class files and byte code (chapter 5), and performance tuning (chapter 6).
Part 3: Alternative Languages ​​for the Java Virtual Machine
In Part 3, Multilingual Programming in the Java Virtual Machine, the authors go beyond the limits of the Java language and talk about alternative languages ​​for the Java virtual machine. The authors emphasize that the Java developer will not interfere with the study of these alternative languages, since "it turns out that many new ideas that will be in demand in the future are already present in other languages ​​of the Java virtual machine". From our side, we add that at least Groovy is really convenient for solving problems in which the Java language is not so strong (for example, writing scripts).
Chapter 7, Alternative Languages ​​for the Java Virtual Machine, describes how to choose an alternative language that is most suitable for working in a given situation. The authors quickly acquaint us with introductory information about alternative languages ​​(Groovy, Scala and Clojure), each of which is devoted to a separate chapter. They also explain why they decided to stay in these languages:
“In the rest of the book we will talk about the three languages, which, in our opinion, in the foreseeable future will be the most durable and influential. These are the languages ​​for the Java virtual machine (Groovy, Scala and Clojure), which already have well-established communities of supporters in a multilingual programming environment. ”
In Chapter 7, which begins Part 3, we get acquainted with introductory information about multilingual programming, and each of the following three chapters is devoted to a specific alternative language: Groovy (chapter 8 “Groovy, a dynamic Java buddy”), Scala (chapter 9 “Scala - powerful and concise ”) and Clojure (Chapter 10“ Clojure: Advanced Reliability Programming ”). Each of these chapters is an overview. Of course, one chapter is not enough to make a complete introductory course in working with a new programming language, so these chapters focus on the strengths of each of the languages. In addition, the problems of the interaction of these languages ​​with Java (in the chapters on Groovy and Clojure) are addressed and a comparison of these languages ​​with Java is made to more fully describe their characteristics.
Part 4: Use of alternative languages, new technologies and Java tools
In Part 4, “Mastering a Multilingual Project,” the information studied above is used in the context of “some of the most common and important technologies of modern design”. The three chapters that make up this part deal with modern software development technologies (test-driven development, continuous development / integration, and rapid web development). In the final chapter of Part 4, the authors suggest what the Java language expects in the future.