<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Scala on ilikeorangutans</title><link>https://kuelzer.ca/tags/scala/</link><description>Recent content in Scala on ilikeorangutans</description><generator>Hugo</generator><language>en</language><copyright>© 2026 Jakob Külzer</copyright><lastBuildDate>Sun, 12 Apr 2026 14:27:24 -0400</lastBuildDate><atom:link href="https://kuelzer.ca/tags/scala/index.xml" rel="self" type="application/rss+xml"/><item><title>Give Me Smarter Objects</title><link>https://kuelzer.ca/posts/2018/06/18/give-me-smarter-objects/</link><pubDate>Mon, 18 Jun 2018 21:20:31 -0400</pubDate><guid>https://kuelzer.ca/posts/2018/06/18/give-me-smarter-objects/</guid><description>&lt;p&gt;A coding exercise I do once in a while is writing &lt;a href="https://en.wikipedia.org/wiki/Battleship_(game)"&gt;Battleship&lt;/a&gt;. It&amp;rsquo;s a
fun little exercise, comes with a slew of interesting decisions, and every once in a while I do this exercise with a
candidate as part of the interview process. It&amp;rsquo;s always exciting to see what other developers come up with. Today I was
doing the exercise and I contemplated on the &lt;em&gt;primitive obsession&lt;/em&gt; code smell that always seems to creep into my code
and saw a beautiful way to apply the &lt;em&gt;extract class&lt;/em&gt; refactoring that very succinctly shows how nice object oriented
programming can be.&lt;/p&gt;</description></item><item><title>null, Software Design, and Scala's Option</title><link>https://kuelzer.ca/posts/2018/05/26/null-software-design-and-scalas-option/</link><pubDate>Sat, 26 May 2018 12:13:10 -0400</pubDate><guid>https://kuelzer.ca/posts/2018/05/26/null-software-design-and-scalas-option/</guid><description>&lt;p&gt;For the past year or so I&amp;rsquo;ve been writing a lot of Scala and fallen in love with its &lt;code&gt;Option&lt;/code&gt; type and how it allows me to avoid &lt;code&gt;null&lt;/code&gt;s. I reflected on &lt;code&gt;null&lt;/code&gt;, why they are bad, and how optional types allow you to write more expressive code.&lt;/p&gt;
&lt;h2 id="what-is-null"&gt;What is null?&lt;/h2&gt;
&lt;p&gt;Most programming languages have the concept of &lt;code&gt;null&lt;/code&gt; (or &lt;code&gt;nil&lt;/code&gt;) that represents the absence of a given value or object. At it&amp;rsquo;s surface the absence of a value probably just translates into a pointer of value &lt;code&gt;0x0&lt;/code&gt; or in languages that do not zero variables, a pointer anywhere into the memory. But aside from the implementation details the more interesting question is how &lt;code&gt;null&lt;/code&gt; fits into a language&amp;rsquo;s type system.&lt;/p&gt;</description></item></channel></rss>