Perché gli errori legati a null vengono chiamati 'errori da un milione'?
sobes.tech AI
Risposta dell'AI
Gli errori legati a null sono chiamati "errori da un miliardo di dollari" (e non da un milione), perché hanno causato enormi perdite finanziarie e problemi nel software per decenni. Il creatore del concetto di null (originariamente NIL) nel linguaggio ALGOL, Tony Hoare, ha successivamente riconosciuto che si trattava del suo "errore da un miliardo di dollari", poiché all'epoca non riusciva a prevedere i futuri problemi di sicurezza.
I problemi sorgono a causa di:
- Indeterminatezza:
nullpuò significare cose diverse in contesti diversi (assenza di valore, errore, caso non gestito), il che rende difficile la comprensione del codice. - Problemi di sicurezza: Tentare di eseguire un'operazione su un valore
null(ad esempio, chiamare un metodo o accedere a una proprietà) porta a un'eccezione (NullPointerExceptiondi solito), che può causare crash dell'app. - Necessità di controlli: Gli sviluppatori devono aggiungere costantemente controlli di
nullprima di usare le variabili, aumentando la complessità e la quantità di codice.
Con Flutter e Dart, con l'introduzione della null safety, questo problema è diventato molto meno rilevante, poiché i tipi di default non possono essere null senza indicazioni esplicite (String?, int?, ecc.), permettendo al compilatore di individuare errori potenziali prima dell'esecuzione.
// Prima dell'introduzione della null safety
String name = null; // Era possibile
// Con null safety
// String name = null; // Errore in fase di compilazione
String? nullableName = null; // Permesso, ma esplicito