Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The billion dollars mistake is not having nulls, you need some concept of null.

The mistake was allowing nulls to be a valid value for all pointers/reference at the type level.

You cannot make this mistake in an untyped language like JavaScript*

The solution to this is not eliminating nulls but rather separating nullable pointers/references from non-nullable ones

* Ok ironically JavaScript has an actual historical implementation bug where typeof null === "object" (basically Netscape used tagged pointers, the object tag was 0, and null was represented as a null pointer, so typeof would read the tag and return "object"



> The billion dollars mistake is not having nulls, you need some concept of null. > The mistake was allowing nulls to be a valid value for all pointers/reference at the type level.

Hence I call it "implicit nulls" in my post. I know `null` as a concept is important, even if you have it as `Unit`, `Void` or `Nothing`.

You are totally right thought that in languages that do not force you to specify types it is basically needed as you cannot hint a type to begin with.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: