<rss version="2.0">
  <channel>
  <title>Cay Horstmann's Unblog</title>
  <link>https://horstmann.com/unblog</link>
      <description>I am a professor of computer science and wrote many professional and college books on Java, Scala, other programming languages, and introductory programming. In this blog, I share the occasional tidbit of useful information or rant about the latest injustice in the worlds of Java and computer science education.</description>
  <item>
  <title>Nice and Naughty Cases of Pattern Matching</title>
  <link>https://horstmann.com/unblog/2025-12-12/index.html</link>
  <description>Since Java 14, the Java switch and instanceof statements have been enhanced, in multiple phases, to support pattern matching and a &quot;data-oriented&quot; programming style. In this article, also published in the Java Advent Calendar, I explore when this programming style is beneficial, and why. I look at the sweet spot of perfect pattern usage, absolute antipatterns where it should not be used, no matter how many examples you see in blogs and conference presentations, and corner cases where the switch syntax clashes with legacy behavior.</description>
  <pubDate>Fri, 12 Dec 2025 12:00:00 +0100</pubDate>
  </item><item>
  <title>Help! My LocalDate Isn’t Flattened</title>
  <link>https://horstmann.com/unblog/2025-11-08/index.html</link>
  <description>Project Valhalla promises to flatten objects in the Java virtual machine. Of course, it is much better to have an array of fifty million values than fifty million object references, each with a header and the value. Just before giving a presentation about that at the JFall conference, I saw an article at inside.java that promised such flattening with an array of LocalDate objects. But I could not reproduce it. The culprit? Serialization, of course. Read on for the gory details!</description>
  <pubDate>Sat, 8 Nov 2025 12:00:00 +0100</pubDate>
  </item><item>
  <title>One Small Step for Maven</title>
  <link>https://horstmann.com/unblog/2025-09-30/index.html</link>
  <description>The fabulous JCrete unconference ends with a “hack day”. I never thought I could contribute anything useful in a few hours, but this year Maurice Naftalin and myself succeeded. Version 3.6.0 of the exec-maven-plugin contains the fruit of our labor. Now you can use Maven to execute an “instance main method”.</description>
  <pubDate>Tue, 30 Sep 2025 12:00:00 +0200</pubDate>
  </item><item>
  <title>Emacs, LSP, and Java, Together at Last</title>
  <link>https://horstmann.com/unblog/2025-09-20/index.html</link>
  <description>I like to use Java for small programming tasks. Without ceremony. Without a src/main/java directory tree. It works great with modern Java and VS Code. VS Code isn’t a complete IDE, but it relies on the Language Server Protocol (LSP) to talk to the Eclipse LSP server. Of course, VS Code is unremarkable as a text editor. It’s no Emacs. But the combination of Emacs, LSP, and Java can be a science project. After more than a year of fussing with it on and off, I finally got them to work together. Read on if you are one of the select few who care.</description>
  <pubDate>Sat, 20 Sep 2025 12:00:00 +0200</pubDate>
  </item><item>
  <title>Java 25: The Nice, the Meh, and ...</title>
  <link>https://horstmann.com/unblog/2025-09-16/index.html</link>
  <description>When a new “long term support” release of Java comes out, I like to reflect on what improvements that it brings are nice, meh, ugly, or otherwise remarkable. Now we have Java 25, and here are my totally unbiased opinions.</description>
  <pubDate>Tue, 16 Sep 2025 12:00:00 +0200</pubDate>
  </item><item>
  <title>German Driving Licenses for Expats</title>
  <link>https://horstmann.com/unblog/2025-04-16/index.html</link>
  <description>Are you living in Germany? As an expat, for an extended time? With a license from your home country? Do you feel the urge to speed along the autobahn once in a while? After six short months, you'll need a German driving license. Not a problem, right? Well, this is Germany. Read on for the gory details.</description>
  <pubDate>Wed, 16 Apr 2025 12:00:00 +0200</pubDate>
  </item><item>
  <title>When I Abandoned the Vehicle</title>
  <link>https://horstmann.com/unblog/2025-03-23/index.html</link>
  <description>This year, Java One (super nice experience, BTW) was at Oracle Headquarters in Redwood Shores, so I rented a car in order to better navigate the peninsular wilderness. When the car failed to start, things got very weird. Here is the drama in 5 acts.
    </description>
  <pubDate>Sun, 23 Mar 2025 12:00:00 +0100</pubDate>
  </item><item>
  <title>Teaching Java is Getting Simpler</title>
  <link>https://horstmann.com/unblog/2025-02-20/index.html</link>
  <description>I just talked to a professor who is using “Big Java”, my college textbook for beginning programmers. The professor had useful suggestions for improvement in the ebook. Since I had the chance, I asked “Are you planning to switch to Java 25 so that your students can use the simple onramp features? Should I cover them in the next edition?” Blank stares ensued.
      Since I obsessively track all Java developments for accurate and timely updates of my “Core Java” book for professional programmers, I pay close attention to these changes. But of course, teachers in the trenches have other things to obsess about. If you are among them, perhaps you will find this article helpful.
    </description>
  <pubDate>Thu, 20 Feb 2025 12:00:00 +0100</pubDate>
  </item><item>
  <title>Exploring DeepSeek with the Crazy Cheeze Puzzle</title>
  <link>https://horstmann.com/unblog/2025-01-25/index.html</link>
  <description>Having learned about DeepSeek, the new kid on the AI chatbot block, I tasked it with writing a solver for an annoying puzzle. I was surprised how well it did, quite a bit better than the current state of the art. Check out the code that it produced as I kept challenging it. Reading and evaluating code, rather than writing it, is what we will all need to get better at.
      The code snippets are executable, so you can experiment with them. I wish the chatbots had that feature.
    </description>
  <pubDate>Sat, 25 Jan 2025 12:00:00 +0100</pubDate>
  </item><item>
  <title>Lessons from Advent Of Code - Part 4: Grids and Graphs</title>
  <link>https://horstmann.com/unblog/2024-12-26/index.html</link>
  <description>
    In this final article on my experience with the Advent of Code event, I describe how I attacked grid and graph problems, and summarize how Java has worked out for me.      
    </description>
  <pubDate>Thu, 26 Dec 2024 12:00:00 +0100</pubDate>
  </item>
  </channel>
  </rss>