Sobes.tech
Junior

Por que os erros relacionados com null são chamados de 'erros de um milhão'?

sobes.tech IA

Resposta da IA

Os erros relacionados com null são chamados de "erros de mil milhões de dólares" (e não de um milhão), porque causaram enormes perdas financeiras e problemas no software ao longo de décadas. O criador do conceito de null (originalmente NIL) na linguagem ALGOL, Tony Hoare, posteriormente reconheceu que foi o seu "erro de mil milhões de dólares", pois na altura não conseguiu prever os problemas de segurança futuros.

Os problemas surgem devido a:

  • Indeterminação: null pode significar coisas diferentes em diferentes contextos (ausência de valor, erro, caso não tratado), o que dificulta a compreensão do código.
  • Problemas de segurança: Tentar realizar uma operação sobre um valor null (por exemplo, chamar um método ou aceder a uma propriedade) leva a uma exceção (geralmente NullPointerException), o que pode causar falhas na aplicação.
  • Necessidade de verificações: Os programadores precisam de adicionar constantemente verificações de null antes de usar variáveis, o que aumenta a quantidade e a complexidade do código.

No Flutter e Dart, com a introdução do null safety, este problema tornou-se muito menos relevante, pois os tipos por padrão não podem ser null sem uma indicação explícita (String?, int?, etc.), o que permite ao compilador detectar erros potenciais antes da execução.

// Antes da introdução do null safety
String name = null; // Era possível

// Com null safety
// String name = null; // Erro na compilação
String? nullableName = null; // Permitido, mas explícito