This is what I think of whenever someone says a stringly typed language (or honestly, anything that doesn't have algebraic datatypes at the very minimum) isn't that bad.
https://www.laserfiche.com/ecmblog/the-sad-story-of-mr-null-and-little-bobby-tables/
@csepp i get that it's a thing with implicit typecasting in dynamically typed languages but thats it
right?
@eris Not having ADT means someone will return false instead of using option. Maybe that someone won't be you, but will you fix it when others depend on the bad behaviour? See assoc-ref in Scheme, numeric errors in C, anything with null, etc.
@csepp thats not what the article is about
@eris I'm extrapolating the text a teensy bit, and ADTs alone don't solve all the issues. I also readed some of the linked pages and they blur together a bit.
But for a good example of needing None, see the examples where the data entry person had to write something like "no name" or "no street". That specifically could be solved in the DB by using null, but how do you define read : String -> Option String when show None == show "None"?
@csepp not sure how not having algebraic datatypes means you interpret strings into values