<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cay Horstmann on foojay.io - Friends of OpenJDK</title><link>https://foojayio.github.io/website/today/author/cay-horstmann/</link><description>Articles written by Cay Horstmann on foojay.io - Friends of OpenJDK</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 16 Jun 2025 07:42:00 +0000</lastBuildDate><atom:link href="https://foojayio.github.io/website/today/author/cay-horstmann/index.xml" rel="self" type="application/rss+xml"/><item><title>Foojay Podcast #73: JCon Report, Part 2 – Evolutions in the Java language and runtime</title><link>https://foojayio.github.io/website/today/foojay-podcast-73/</link><pubDate>Mon, 16 Jun 2025 07:42:00 +0000</pubDate><guid>https://foojayio.github.io/website/today/foojay-podcast-73/</guid><description>&lt;p&gt;In the second part of our JCON interviews, recorded at the conference in May, we focuses on general evolutions within the Java world and how they influence how we write code and develop applications. We take a look back at the history of Java, discuss new features in the latest release, how Java evolves with OpenJDK projects and JEPS, how Java is used in education, and much more&amp;hellip;&lt;/p&gt;
&lt;h2 id="h2-0-video"&gt;Video&lt;/h2&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
			&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/T9_5LYsFZn8?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
		&lt;/div&gt;

&lt;h2 id="h2-1-podcast-apps"&gt;Podcast Apps&lt;/h2&gt;
&lt;p&gt;You can listen and subscribe to the Foojay Podcast on:&lt;/p&gt;</description></item><item><title>New Book Review: Seriously Good Software</title><link>https://foojayio.github.io/website/today/book-review-seriously-good-software/</link><pubDate>Thu, 22 Jul 2021 07:17:33 +0000</pubDate><guid>https://foojayio.github.io/website/today/book-review-seriously-good-software/</guid><description>&lt;p&gt;&lt;img src="https://horstmann.com/unblog/2021-07-05/Faella-SGS-HI.jpeg" alt="Cover" loading="lazy"&gt;
&lt;/p&gt;
&lt;p&gt;I recently &lt;a href="https://foojayio.github.io/website/today/book-review-java-by-comparison/%27"&gt;reviewed the book &amp;ldquo;Java by Comparison&amp;rdquo;&lt;/a&gt;
 by Simon Harrer, Jörg Lenhard, and Linus Dietz. That book is intended for programmers who know the basics of the Java language, perhaps from a university curriculum. The book teaches programmers to improve their Java language and library usage through seventy &amp;ldquo;before and after&amp;rdquo; examples, covering topics such as coding style, naming, exceptions, streams, and class design.&lt;/p&gt;
&lt;p&gt;For contrast, I&amp;rsquo;ll now review Marco Faella&amp;rsquo;s book &amp;ldquo;&lt;a href="https://www.manning.com/books/seriously-good-software" target="_blank" rel="noopener noreferrer"&gt;Seriously Good Software&lt;/a&gt;
&amp;rdquo; that also teaches intermediate Java programmers to write better software, using an entirely different approach. (Disclaimer: Marco talked me into writing the preface for his book.)&lt;/p&gt;</description></item><item><title>Announcing New Book Review: "Java by Comparison"</title><link>https://foojayio.github.io/website/today/book-review-java-by-comparison/</link><pubDate>Wed, 02 Jun 2021 08:13:15 +0000</pubDate><guid>https://foojayio.github.io/website/today/book-review-java-by-comparison/</guid><description>&lt;figure class="wp-block-image size-medium"&gt;
 &lt;a target="_blank" href="https://pragprog.com/titles/javacomp/java-by-comparison/"&gt;&lt;img fetchpriority="high" decoding="async" width="423" height="510" src="book-java-by-comparison-423x510.png" alt="" class="wp-image-46411"&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;p&gt;The book &lt;a href="https://pragprog.com/titles/javacomp/java-by-comparison/" target="_blank" rel="noopener noreferrer"&gt;&amp;ldquo;Java by Comparison&amp;rdquo; by Simon Harrer, Jörg Lenhard, and Linus Dietz&lt;/a&gt;
, promises the reader to become a &amp;ldquo;Java Craftsman&amp;rdquo; through the study of 70 examples. The book is published by The Pragmatic Bookshelf.&lt;/p&gt;
&lt;p&gt;Each &amp;ldquo;example&amp;rdquo; is structured as a before-and-after comparison. It&amp;rsquo;s best to illustrate that with, well, an example:&lt;/p&gt;
&lt;h3 id="h3-0-return-boolean-expressions-directly"&gt;&lt;strong&gt;Return Boolean Expressions Directly&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Before:&lt;/strong&gt;&lt;/p&gt;
&lt;pre class="EnlighterJSRAW" data-enlighter-language="java" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""&gt;boolean isValid() {
 if (missions &amp;lt; 0 || name == null || name.trim().isEmpty()) {
 return false;
 } else {
 return true;
 }
}&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;After:&lt;/strong&gt;&lt;/p&gt;</description></item></channel></rss>