Sobes.tech
Junior

Proč jsou chyby spojené s null nazývány 'chyby za milion'?

sobes.tech AI

Odpověď od AI

Chyby související s null jsou nazývány "chyby za miliardu dolarů" (nikoliv milion), protože způsobily obrovské finanční ztráty a problémy v softwaru po desetiletí. Tvůrce konceptu null (původně NIL) v jazyce ALGOL, Tony Hoare, později přiznal, že to byla jeho "chyba za miliardu dolarů", protože tehdy nedokázal předvídat budoucí bezpečnostní problémy.

Problémy vznikají kvůli:

  • Neurčitosti: null může v různých kontextech znamenat různé věci (nepřítomnost hodnoty, chyba, nezpracovaný případ), což ztěžuje pochopení kódu.
  • Problémy s bezpečností: Pokus o provedení operace nad hodnotou null (například volání metody nebo přístup k vlastnosti) vede k výjimce (NullPointerException obvykle), což může způsobit selhání aplikace.
  • Nutnosti kontrol: Vývojáři musí neustále přidávat kontroly null před použitím proměnných, což zvyšuje objem a složitost kódu.

V Flutteru a Dart, s zavedením null safety, se tento problém stal výrazně méně relevantní, protože výchozí typy nemohou být null bez explicitního označení (String?, int? atd.), což umožňuje kompilátoru odhalit potenciální chyby před spuštěním.

// Před zavedením null safety
String name = null; // To bylo možné

// S null safety
// String name = null; // Chyba při kompilaci
String? nullableName = null; // Povolené, ale explicitní