자바 언어에서는 null 또는 의미 있는 값이 결과가 되도록 허용한다. 그러나 불행히도 null을 정상적인 값과 같은 방식으로 다루면 극적인 실패(자바에서는 NullPointerException이 발생하며, C와 같은 더 원시적인 언어에서는 null 포인터를 사용하면 프로세스가 오류로 끝나버리거나 심지어 운영체제 또는 기계가 멈추는 경우도 있다)가 발생한다. null 참조를 처음 생각해낸 토니 호어(Tony Hoare)3는 이를 ‘자신의 100만 불짜리 실수’라고 이야기했다(내 생각에는 훨씬 더 큰 비용을 유발했을 것 같다).
이 문제에 대한 언어적 해법 중 하나는 애초에 null을 허용하지 않는 것이다. 그 대신에 특별한 ‘값 없음’을 표시하는 표지를 도입할 수 있다. 코틀린에서도 이런 선택을 하고 싶었던 것 같다. 하지만 코틀린은 자바와 상호 작용해야 하는데, 자바는 null을 쓴다.