Withers in Java: “Derived Record Creation Expressions”
Explains Java's upcoming 'Withers' feature for creating derived records, a preview feature to simplify immutable record modifications.
Explains Java's upcoming 'Withers' feature for creating derived records, a preview feature to simplify immutable record modifications.
A follow-up analysis of unexpected behavior in C# record types when using the 'with' operator, exploring differing mental models and solutions.
Explains Java's new Lazy Constants feature for safe, one-time initialization of immutable values, covering benefits and internal workings.
A technical exploration of using C# records and collections for immutable data models, covering benefits and practical implementation details.
Explains how to use TypeScript's `readonly` keyword to create immutable properties and types, with examples and compiler behavior.
Introducing the new ReadOnlySet<T> type in .NET 9, explaining its purpose and advantages over existing interfaces and workarounds.
Explores the rationale behind updating Data-Oriented Programming principles to version 1.1 for Java, discussing improvements and shortcomings.
Explores when to use Data-Oriented Programming in Java, comparing it to functional and object-oriented paradigms.
Explores the Data-Oriented Programming principle of separating operations from data, using Java records as an example.
Explores the data-oriented programming principle of making illegal states unrepresentable in Java, focusing on precise data modeling.
Explores Data-Oriented Programming principles in Java, focusing on modeling data with records and sealed types.
Explores immutability and transparency in data modeling using Java records, part of a series on Data-Oriented Programming v1.1.
A comprehensive guide to functional programming concepts in JavaScript, including pure functions, immutability, currying, memoization, and monads.
Explores JEP 468, which introduces 'with expressions' (withers) to simplify creating modified copies of immutable Java records.
Exploring the joy of using immutable update patterns in C#, covering modern language features like switch expressions and records.
An exploration of functional programming concepts, arguing for practicing core tenets in familiar languages rather than learning new ones like Haskell.
Explains a common pitfall when using the C# 'with' keyword on records containing reference types, and how to avoid it.
Explores the pitfalls of mutable value types in C#/.NET, explaining why they are often avoided and the performance reasons for their limited use.
Introduces Data-Oriented Programming principles: immutable data, pattern matching, and separating data from operations, with comparisons to OOP.
A preview of JavaOne sessions covering Sequenced Collections, purity, and upcoming Java features like string templates and JavaFX 19.