&gt; Having the get() method makes the entire purpose of Optional useless.<p>It doesn&#x27;t quite, though it is way too short and convenient.<p>&gt; If you need to extract the value, the orElse method should be suitable on all cases.<p>orElse is incorrect if you have specific expectations. get is an assertion, and used in that manner it&#x27;s perfectly sensible and orElse is not. Plus orElse can send the wrong signal.<p>&gt; Including it in the first place was as much of a mistake as the null pointer.<p>The only language I know which has optionals and doesn&#x27;t have something equivalent to .get() is Elm, and even there you can trivially pattern-match and call Debug.crash in the Nothing case.