Sobes.tech
Junior

Miért nevezik null-hoz kapcsolódó hibákat 'egymilliós hibáknak'?

sobes.tech MI

Válasz az MI-től

A null-hoz kapcsolódó hibákat „milliárd dolláros hibáknak” nevezik (nem milliónak), mert évtizedeken keresztül óriási pénzügyi veszteségeket és problémákat okoztak a szoftverekben. Az ALGOL nyelvben a null (eredetileg NIL) fogalom alkotója, Tony Hoare később elismerte, hogy ez az ő „milliárd dolláros hibája”, mivel akkor nem tudta előre látni a jövőbeli biztonsági problémákat.

A problémák abból adódnak, hogy:

  • Határozatlanság: A null különböző kontextusokban különböző dolgokat jelenthet (érték hiánya, hiba, nem kezelt eset), ami megnehezíti a kód megértését.
  • Biztonsági problémák: A null értéken végzett művelet (pl. metódus hívása vagy tulajdonság elérése) kivételt eredményez (általában NullPointerException), ami az alkalmazás összeomlásához vezethet.
  • Ellenőrzések szükségessége: A fejlesztők folyamatosan hozzá kell adniuk null-ellenőrzéseket a változók használata előtt, ami növeli a kód mennyiségét és összetettségét.

A Flutterben és Dartban, a null safety bevezetésével, ez a probléma jelentősen kevésbé releváns, mivel az alapértelmezett típusok nem lehetnek null-ok explicit megjelölés nélkül (String?, int? stb.), így a fordító képes felismerni a potenciális hibákat futtatás előtt.

// Null safety bevezetése előtt
String name = null; // Ez lehetséges volt

// Null safety-val
// String name = null; // Fordítási hiba
String? nullableName = null; // Engedélyezett, de explicit módon megadott