Project Valhalla seems to be on the verge of being incorporated into the JVM… as a preview feature in JDK 28 that is.
This blog might be a bit premature, since it isn’t likely value types will be final in JDK 29.
Premature, yes, but the JEP is already worth a careful read.
I stumbled upon some interesting behavioral changes regarding equality.
Traditionally, the purpose of the == operator was to test whether two referenced objects have the same identity.
…
After the introduction of value objects, the purpose of the == operator is to test whether two referenced objects are indistinguishable.
— JEP 401
Continue reading →
Over the last few years, the software industry has been in the grasp of an all-overshadowing discussion on the use of AI and LLMs.
What started as a fun experiment with ChatGPT showing this “intelligence” was sometimes capable of writing somewhat coherent compiling code has quickly grown into a plethora of LLMs, AIs, IDE plugins and tools built upon AIs influencing (or taking over) every aspect of software development.
While the discussions do address the value and shortcomings of the tools I find myself pondering the effect this will have on our profession more.
Continue reading →
Simon Brown’s C4 Model for architecting your software solutions provides a clean and structured way of modeling software.
Structurizr is not a new tool, but with some new "Solution Architecture" responsibilities flowing my way I was looking for a way to create maintainable models.
I found Structurizr extremely useful for creating easy to maintain models to use and change(!) during discussions with architects and developers alike.
Continue reading →