Why did Julia devs rename `NA` to `missing`

Viewed 158

This might seem like a silly trivial question but I am genuinely curious why the Julia devs decided to change the naming for missing values. Seeing as Julia is designed to be very similar to existing languages and pipelines based on R and Python, I don't quite get why they would introduce a long and clumsy name for NAs which would be intuitive to anyone coming from MATLAB/R.

1 Answers

The supposition that NA is standard in other languages is actually not true:

  • R, yes — the only one that uses NA
  • Matlab, noNaN, NaT, missing, others
  • Python, noNaN, None, others
  • SQL, noNULL

There's almost no consistency across languages. Except for one thing: they all use the term "missing data" when explaining it. When someone sees NA for the first time, they have no idea what it might mean. Even when you know, it's unclear what it stands for. Does it mean "Not assigned"? "Not available"? "Not applicable"? "No answer"? These are all quite different concepts, which leads to confusion and misuse. Since "missing" is the word that is consistently used to describe what NA is meant to be used for, why not call it that? Using the name missing also clears up confusion about meaning: missing unambiguously represents a missing value.

Related