Null: The Billion Dollar Mistake. Tony Hoare:

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. In recent years, a number of program analysers like PREfix and PREfast in Microsoft have been used to check references, and give warnings if there is a risk they may be non-null. More recent programming languages like Spec# have introduced declarations for non-null references. This is the solution, which I rejected in 1965.

Answer from moffdub on Stack Overflow
🌐
freeCodeCamp
freecodecamp.org › news › a-quick-and-thorough-guide-to-null-what-it-is-and-how-you-should-use-it-d170cea62840
A quick and thorough guide to ‘null’: what it is, and how you should use it
June 12, 2018 - Please note also that some programming languages support only reference types, others support only value types, and some (e.g. C# and Java) support both of them. ... The concept of null exists only for reference types. It doesn't exist for value types. Suppose we have a type person with a field emailAddress. Suppose also that, for a given person which we will call Alice, emailAddress points to null. What does this mean?
Discussions

What is Null?
NULL is nothing. It means theres nothing there. Often its just a place holder before something is there. Say u have a bunch of variables of animals. U might set them to NULL before u know what they are. Then u might check if they are NULL before u add an animal to them. Things are initialized as NULL. More on reddit.com
🌐 r/learnprogramming
60
34
July 5, 2024
What does “null” mean and why is it here
🌐 r/discordapp
43
51
March 21, 2023
🌐
Khoury College of Computer Sciences
khoury.northeastern.edu › home › kenb › MeaningOfNull.html
The Meaning of Null in Databases and Programming Languages
The main distinction between the relational null and the programming language null is the following: The relational null represents the absence of a value in a field of a record; whereas the programming language null represents one of the possible values of a variable.
🌐
MDN Web Docs
developer.mozilla.org › en-US › docs › Glossary › Null
Null - Glossary - MDN Web Docs
In computer science, a null value represents a reference that points, generally intentionally, to a nonexistent or invalid object or address. The meaning of a null reference varies among language implementations.
🌐
ThoughtCo
thoughtco.com › definition-of-null-958118
What Does Null Mean in C, C++ and C#?
April 27, 2019 - Null is a constant built into C, C++, and C#. It has a value of zero. Null can also be the value of a pointer that points nowhere.
🌐
Quora
quora.com › What-does-NULL-mean-in-programming-languages
What does NULL mean in programming languages? - Quora
Answer (1 of 6): null is the pointer or reference to address zero. Why would this be needed or used? Let’s say you are searching for a library book that you want to read. Unlike Amazon, your library doesn’t have every book. If you search for “Object Oriented Software Construction” by ...
🌐
TechTerms
techterms.com › definition › null
Null Definition - What does null mean to a computer?
September 26, 2022 - It does not mean a value of 0, since 0 is itself a value, nor does it mean a blank space " ". It also does not refer to an undefined variable, which has not been created at all. In the context of programming languages, a variable that has no value assigned is considered null.
Find elsewhere
🌐
Microsoft Learn
learn.microsoft.com › en-us › dotnet › csharp › language-reference › keywords › null
null keyword - C# reference | Microsoft Learn
The null keyword is a literal that represents a null reference, one that doesn't refer to any object. null is the default value of reference-type variables. Ordinary value types can't be null, except for nullable value types.
🌐
DevX
devx.com › home › null
Null - DevX
January 17, 2024 - In database management systems, ... Java and Python, employ the concept of null to indicate that an object reference does not point to any instance of an object....
Top answer
1 of 16
49

Null: The Billion Dollar Mistake. Tony Hoare:

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. In recent years, a number of program analysers like PREfix and PREfast in Microsoft have been used to check references, and give warnings if there is a risk they may be non-null. More recent programming languages like Spec# have introduced declarations for non-null references. This is the solution, which I rejected in 1965.

2 of 16
32

null is a sentinel value that is not an integer, not a string, not a boolean - not anything really, except something to hold and be a "not there" value. Don't treat it as or expect it to be a 0, or an empty string or an empty list. Those are all valid values and can be geniunely valid values in many circumstances - the idea of a null instead means there is no value there.

Perhaps it's a little bit like a function throwing an exception instead of returning a value. Except instead of manufacturing and returning an ordinary value with a special meaning, it returns a special value that already has a special meaning. If a language expects you to work with null, then you can't really ignore it.

🌐
Wikipedia
en.wikipedia.org › wiki › Null
Null - Wikipedia
June 20, 2026 - Look up Null, null, a-null, núll, or Nullus in Wiktionary, the free dictionary. ... Null (SQL) (or NULL), a special marker and keyword in SQL indicating that a data value does not exist, is not known, or is missing. Null character, the zero-valued ASCII character, also designated by NUL, often ...
🌐
TechCareer
techcareer.net › en › dictionary › null
What is Null? What does it do?
Null, in many programming languages, means "empty" or "nothing." It is used to indicate that a variable has no value. Null shows that an object or reference does not contain any data or does not point to an object.
🌐
W3Schools
w3schools.com › c › c_null.php
C NULL
NULL is a special value that represents a "null pointer" - a pointer that does not point to anything.
🌐
Medium
robertdelwood.medium.com › thinking-like-a-programmer-understanding-null-959a5da1d625
Thinking Like a Programmer: Understanding Null | by Robert Delwood | Medium
September 21, 2025 - A null or nothing means there is no value for developers to read or use. If unchecked, that value results in an error. That’s why the null check needs to be there. ... Programmer/writer/programmer-writer.
🌐
Programmer's Wiki
code.fandom.com › wiki › Null
Null | Programmer's Wiki | Fandom
null (often NULL, or nil) is a constant used in many programming languages to indicate that the expected value is unknown. It is different from 0, the empty string, and false because these are known to be empty.
🌐
Medium
medium.com › @sumeet2703 › understanding-the-difference-between-zero-and-null-in-programming-db60b4e12934
Understanding the Difference Between Zero and Null in Programming | by Sumeet K | Medium
September 4, 2024 - Null, on the other hand, represents the absence of a value or a reference. It is not a number, nor is it a default value—it signifies that a variable has not been assigned any value at all.
🌐
CodeItBro
codeitbro.com › home › glossaries › coding glossary › null
What is Null in Programming? Detailed Explaination
May 18, 2025 - Null is a special value in computer science that represents the absence of a valid value or object reference, serving as a placeholder to indicate that a variable, pointer, or reference does not currently point to any meaningful data or memory ...
🌐
Zenva
gamedevacademy.org › home › software development › what is null in programming – complete guide
What Is Null In Programming - Complete Guide - GameDev Academy
November 21, 2023 - To signify the end of lists in some languages. As a return value when functions don’t return anything explicitly. By being able to assign ‘null’ to variables, developers have a powerful way to manage and track the state of objects and handle cases where the presence of an actual value is uncertain or unnecessary. Understanding the concept of ‘null’ is essential: To prevent bugs that can arise from null reference errors, which are common in many programming languages.