Sobes.tech
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: null kan 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 een NullPointerException, 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