Sobes.tech
Junior

De ce erorile legate de null sunt numite 'erori de un milion'?

sobes.tech AI

Răspuns de la AI

Erorile legate de null sunt numite „eroarea de un miliard de dolari” (și nu de un milion), deoarece au cauzat pierderi financiare uriașe și probleme în software timp de decenii. Creatorul conceptului de null (inițial NIL) în limbajul ALGOL, Tony Hoare, a recunoscut mai târziu că a fost „eroarea de un miliard de dolari” a sa, deoarece nu a putut prevedea problemele de securitate viitoare.

Problemele apar din cauza:

  • Indeterminării: null poate însemna lucruri diferite în contexte diferite (absența valorii, eroare, caz neprocesat), ceea ce face dificilă înțelegerea codului.
  • Probleme de securitate: Încercarea de a efectua o operație asupra unei valori null (de exemplu, apelarea unei metode sau accesarea unei proprietăți) duce la o excepție (NullPointerException de obicei), ceea ce poate cauza eșecuri ale aplicației.
  • Necesitatea verificărilor: Dezvoltatorii trebuie să adauge constant verificări de null înainte de a folosi variabilele, ceea ce crește volumul și complexitatea codului.

Cu Flutter și Dart, odată cu introducerea null safety, această problemă a devenit mult mai puțin relevantă, deoarece tipurile implicite nu pot fi null fără indicație explicită (String?, int?, etc.), ceea ce permite compilatorului să detecteze erorile potențiale înainte de execuție.

// Înainte de introducerea null safety
String name = null; // Era posibil

// Cu null safety
// String name = null; // Eroare la compilare
String? nullableName = null; // Permis, dar explicit