Use present and absent rather than NULL - http://binkley.blogspot.com/2012/01/better-than-null.html Propose of enhancement, null handelers and null reference - http://shemnon.com/speling/2007/01/null-handelers-and-null-refere-1.html How null breaks polymorphism - http://eureka3d.com/blog/2006/how-null-breaks-polymorphism-or-the-problem-with-null/ http://eureka3d.com/blog/2006/how-null-breaks-polymorphism-or-the-problem-with-null-part-2/ Discussion about forbid NULL as parameter and return - http://javablog.co.uk/2007/05/07/null-parameters-and-returning-null/ Default object in C# - http://www.kodefuguru.com/post/2012/09/25/Default-Objects-with-C.aspx Discussion about using optional - http://blog.jooq.org/2015/08/20/divided-we-stand-optional/ Some suggest about do something better than use null - https://blog.jetbrains.com/idea/2017/08/code-smells-null