위 대화 흐름에서 공감이 안되는 부분은 딱히 없는거 같습니다.

다만, "null을 지양하자" 보다는 "null을 안전하게 사용하자"가 더 맞다는 의견입니다.

구두로 말씀 드렸다시피 null의 존재는 필연적인 것이지 사용하지 않을 수 는 없습니다. 개발자가 이것을 "잘" 컨트롤 해야한다가 핵심입니다.

그리고 말씀하신 billion-dollar mistake의 내용에 대해 읽어보았습니다.

I call it my billion-dollar mistake. It was the invention of the null reference in 1965. At that time, I was designing the first comprehensive type system for references in an object oriented language (ALGOL W). My goal was to ensure that all use of references should be absolutely safe, with checking performed automatically by the compiler. But I couldn't resist the temptation to put in a null reference, simply because it was so easy to implement. This has led to innumerable errors, vulnerabilities, and system crashes, which have probably caused a billion dollars of pain and damage in the last forty years.

Tony Hoare가 실수라고 하는것이 null을 만든 것은 실수였다가 아니라 null 때문에 개발 실수가 많이 발생하는 것에 대한 재치있는 표현정도라고 생각이 듭니다.

null의 존재 이유는 명확합니다.

문제는 이것입니다.

코틀린은 null을 제거한 것이 아니라 더 "잘, 실수 없이" 안전하게 사용할 수 있는 기능을 제공하였습니다.

저의 코틀린에서 null에 대한 결론적인 생각은

  1. nullable 객체를 무분별하게 사용하지 않는다. (?물음표를 막 쓰지 말자)
  2. !!을 사용하지 말자. null이 아닌 것이 확실하지만 compile 이슈가 발생할 때만 어쩔수 없이 사용하자. (이런 상황도 가급적 만들지말자)

정도 입니다.