I should chime in, as I have a large codebase (~45kloc) that has been using explicit nulls since it was introduced (through all its iterations and numerous bugs) and for many years (7 years now), my project is an FRP facade on top of java’s Swing, Qt, Skia, vulkan and web, which uses nulls for a ton of things with semantic meaning. I second everything said by sjrd here, specially the understanding of principle of least power. When I wanted optional parameters (and all my widgets have a 20+ ...