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

In comparison to Haskell, null in Java is similar to adding an implicit Maybe a instance for every type a.

In doing so, Java makes it just that much easier to create bottom values when they are not desired (e.g., dereferencing a null pointer).



I disagree. If null was like Maybe, than you should be able to do:

E foo; ... foo=foo.bar().bat()

without having to do a null check after each function.

I think that Java's approach has the worst of both worlds, because there is no way to make foo.bar().bat() safe when a function could return null.

In C, for example, calling a method on a null object does not cause an error. Rather it passes in null as the 'this' value, allowing you to do you null checks within the method.


Null is like Nothing, nullability is like Maybe, and (.) has an implicit fromJust.


I agree that C handles this much better than java. But your description is inaccurate. In C there are no methods, objects or 'this', which is far better.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

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

Search: