Junior
Waarom worden fouten gerelateerd aan null 'miljoenfouten' genoemd?
sobes.tech AI
Antwoord van AI
Fouten gerelateerd aan null worden de "miljard dollar fouten" genoemd (en niet de miljoen), omdat ze decennia lang enorme financiële verliezen en problemen in de software hebben veroorzaakt. Tony Hoare, de maker van het null-concept (oorspronkelijk NIL) in de programmeertaal ALGOL, erkende later dat het zijn "miljard dollar fout" was, omdat hij destijds de toekomstige beveiligingsproblemen niet kon voorzien.
De problemen ontstaan door:
- Onzekerheid:
nullkan in verschillende contexten verschillende betekenissen hebben (afwezigheid van waarde, fout, niet-afgehandeld geval), wat het begrijpen van de code bemoeilijkt. - Beveiligingsproblemen: Pogingen om een bewerking uit te voeren op een
null-waarde (bijvoorbeeld een methode aanroepen of toegang krijgen tot een eigenschap) leiden meestal tot eenNullPointerException, wat kan leiden tot crashes van de applicatie. - Noodzaak van controles: Ontwikkelaars moeten voortdurend
null-controles toevoegen voordat ze variabelen gebruiken, wat de hoeveelheid en complexiteit van de code verhoogt.
Met Flutter en Dart, en de invoering van null safety, is dit probleem veel minder relevant geworden, omdat standaardtypen niet null kunnen zijn zonder expliciete aanduiding (String?, int?, enz.), waardoor de compiler potentiële fouten kan detecteren voordat de code wordt uitgevoerd.
// Voor de invoering van null safety
String name = null; // Was mogelijk
// Met null safety
// String name = null; // Fout bij compilatie
String? nullableName = null; // Toegestaan, maar expliciet aangegeven