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:
nullmůž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 (NullPointerExceptionobvykle), což může způsobit selhání aplikace. - Nutnosti kontrol: Vývojáři musí neustále přidávat kontroly
nullpř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í