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:
nullpoate î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 (NullPointerExceptionde 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