The major new features in Java 8 center around lambda expressions, a functional programming construct that simplifies certain types of programming problems. John Moore demonstrates the power of lambdas by contrasting several implementations of a mathematical example using C++, Java without lambdas, and Java 8 with lambda expressions.
Software architects have it easy, or so many coders and engineers believe. Find out what an architect's day-to-day working life really looks like in this Full Java life interview. Java programming veteren Bruce Brouwer discusses his approach to upgrading legacy Java web applications to a service-oriented front-end architecture, his rapidly evolving web UI toolkit, and why he generally prefers working with Java's constraints to opting for a less rigorous JVM language.
Orthogonality is a concept often used to describe modular and maintainable software, but it's also a design principle found (and broken) in some of our most popular Java utilities. With this short article you'll wrap your head around orthogonality once and for all -- by seeing how it is implemented, and violated, in Log4j. Workarounds are also discussed.
Find out how the Java Date and Time API addresses the need for a more robust date and time infrastructure in Java SE, then familiarize yourself with the java.time classes you're most likely to use, in this inaugural installment of Java 101: The next generation.
Jeff Friesen revisits the Gang of Four Strategy and
Visitor patterns from a Java developer's perspective, first demonstrating the three components of a successful Strategy, then unpacking Visitor's confounding (for many) double dispatch mechanism. He also offers tips for learning the GoF patterns and discusses some of the reasons why design patterns shouldn't be applied to every programming problem.
Jeff Friesen's three-part introduction takes a wide-angle view of design patterns. Part 1 introduces the concept and use of design patterns and walks through a process of evaluating the Composite pattern for a particular Java use case. The article concludes with a listing of software design patterns by classification and a complete index of design pattern tutorials on JavaWorld.
Whether you're banging out Cobol or hacking Node.js, keeping an eye on programming trends is key to staying competitive in an ever-shifting job market. Peter Wayner sorts the debris from the diamonds in this look at 11 tools and techniques that really are changing how developers work.