6 ms·
You know what's fun? Getting a nil where you are supposed to have an Optional.
by logical42 5y ago
You know what's fun?
Getting a nil where you are supposed to have an Optional.
- joshdev 5y agoSomebody has used Scala
- still_grokking 5y agoMore likely a Java lib form Scala than Scala as such. In "pure" Scala (not in the FP sense, but just without mixing with Java) something like that is almost impossible.
- marwis 5y agoUnless something drastically changed in Scala 3, there is nothing to protect you from null in Scala. In fact even Java is effectively safer thanks to all the null checking done by IntelliJ
- still_grokking 5y agoNull is basically non-existent in idiomatic Scala. So technically you're right but besides calling Java libs there is only an infinitesimal small chance to get NPEs form Scala code. (Scala's NPE is the MatchException ;-)). For Scala 3 there are improvements. It's "null safe" as long as you opt-in (modulo Java libs, and of course doing stupid things like casting a null to some other type). https://docs.scala-lang.org/scala3/reference/other-new-features/explicit-nulls.html https://docs.scala-lang.org/scala3/reference/other-new-featu...
- joshdev 5y agoIdiomatic scala yes, but while on boarding engineers hit many cases, where they ended up returning null in places they shouldn’t.
- still_grokking 5y agoSo you actually complaining about people who don't know what they're doing? How is this related to Scala? When you have people without clue on the team no language will safe you. You can also crash Haskell programs by throwing exceptions or just using List.head…
- marwis 5y agoI'd say safety implies safety from incompetent developers. Similar to the use of the word in memory safety.
- mattnewton 5y agoAfaik this is impossible in swift and kotlin, only optional values can contain nill.
- tbarbugli 5y agoTry Core Data with Swift and you will see that happening. Lazy objects (vaults) are mapped from objc into Swift and will happily crash on something like a = b where both are not optional.
- mattnewton 5y agoThis is happening in objc code or in the swift part? I'm not terribly surprised though, my one experience with core data was miserable once we strayed even a little from the happy path and I ended up rolling my own since we didn't need full functionality anyways. And this was for an internal app, at Apple ┐( ∵ )┌
- logical42 5y agoIt's possible in Java.
- mattnewton 5y agoRight, because the language has the "million dollar mistake" of nullable references by default, which you cannot change without breaking code. And the original comment was bemoaning that Go choose to to have nullable references by default too.
- rowanG077 5y agoso... Just make that impossible. It's not like this is unprecedented at this point. It's a standard feature even C++ of all languages supports.