Why nullable types?
I think dart made the wrong choice here, but I&#x27;ve never used the language personally or professionally.<p>I give the author the benefit of the doubt but Optionals are so much more powerful than what this article covers. You can map, filter, reduce, chain, compose functions that all work with optionals, and lift functions that work on numbers (or any other type) to be functions that work on Optional&lt;number&gt; but none of that is even mentioned in this piece (likely cause then its harder to justify picking nullable types instead)<p>I also found the Some(Some(3)) example just plain wrong. In those scenarios, typically you just use chain (aka flatMap) instead of map... Seems odd this was even included as a motivating reason when this is very much a solved problem.<p>I&#x27;m certainly biased, as I think FP is an incredible mental model for coding and it seems to be catching on in lots of places too.<p>I understand language designers have to make choices that benefit their users now and be as simple as possible to opt into without any overhead to account for changes, but man, what a missed opportunity to give developers better tools and mechanisms in addition to opening up the doorway for many people to functional programming. But even Java has support for optionals.<p>Overall, this appears to be like a missed opportunity and the justification doesn&#x27;t seem to really reflect an understanding of the benefits optionals provide, and misconstrues their use and capability.