Sobes.tech
Junior

Neden null ile ilgili hatalar 'bir milyonluk hatalar' olarak adlandırılır?

sobes.tech yapay zeka

AI'dan gelen yanıt

null ile ilgili hatalar "bir milyar dolarlık hatalar" olarak adlandırılır (bir milyon değil), çünkü onlar on yıllar boyunca büyük finansal kayıplara ve yazılım sorunlarına neden olmuştur. ALGOL dilinde null (başlangıçta NIL) kavramını yaratan Tony Hoare, daha sonra bunun "bir milyar dolarlık hatası" olduğunu kabul etti, çünkü o zamanlar güvenlik sorunlarını öngörememişti.

Sorunlar şunlardan kaynaklanır:

  • Belirsizlik: null, farklı bağlamlarda farklı şeyler ifade edebilir (değer yokluğu, hata, işlenmemiş durum), bu da kodun anlaşılmasını zorlaştırır.
  • Güvenlik sorunları: null değeri üzerinde işlem yapmaya çalışmak (örneğin, metod çağırmak veya özelliğe erişmek) istisna ile sonuçlanır (NullPointerException genellikle), bu da uygulama hatalarına yol açabilir.
  • Kontrol gerekliliği: Geliştiriciler, değişkenleri kullanmadan önce sürekli null kontrolleri eklemek zorunda kalır, bu da kodun hacmini ve karmaşıklığını artırır.

Flutter ve Dart'ta, null güvenliği getirildiğinde, bu sorun önemli ölçüde azaldı, çünkü varsayılan olarak tipler null olamaz (String?, int? gibi açık gösterimler olmadan), bu da derleyicinin potansiyel hataları çalıştırmadan önce tespit etmesine olanak tanır.

// Null güvenliği öncesi
String name = null; // Bu mümkündü

// Null güvenliği ile
// String name = null; // Derleme hatası
String? nullableName = null; // İzin verilir, ama açıkça belirtilmiş