Kahveler içildi, ekran karşısında saatler harcandı ve ekipçe satır satır o kodu didik didik ettik ama sorun bir türlü bulunamadı! Hepimizin aşina olduğu o kriz anlarında suçluyu ararken akla binbir türlü senaryo gelir: Acaba küçücük bir noktalı virgül mü gözden kaçtı, yoksa algoritmanın mantığında mı kaybolduk? Bize bu kadar ter döktüren, bazen saç baş yolduran bu yazılım hatalarına neden sevimli (!) bir şekilde 'bug' yani 'böcek' diyoruz, hiç merak ettiniz mi?

1947 yılında Grace Hopper ve ekibi, o dönem kullanılan devasa bilgisayarlardan biri üzerine çalışıyordu. O dönem bilgisayarlar bugünkü gibi avuç içine sığmıyordu; Harvard Mark II dediğimiz bilgisayar, koca bir odayı kaplayan, içinde binlerce elektromekanik röle (anahtar) bulunan devasa bir makineydi ancak sistem beklenmedik bir şekilde hata vermeye başlamıştı. Ekip, bilgisayarda bir sorun olduğunu fark etmişti. Makine çalışıyor ama bir türlü doğru sonucu vermiyordu. Kodlar kontrol ediliyor, mantık hataları, yazım hataları aranıyor ama her şey kağıt üzerinde gayet iyi görünüyordu.
"Sorun kodda değil, içerde bir şey var!"
İncelemeler sonucunda bir paneldeki röleyi incelerken iki metal kontak arasına gerçek bir güve sıkışmış olduğunu görüyorlar. Güve, rölenin elektrik iletmesini engellediği için koskoca sistemi kilitlemişti. Ekip, bir cımbız yardımıyla o talihsiz güveyi oradan çıkartıyor.
Yukardaki görsele baktığımızda aslında bunun olması çok da absürt bir durum değilmiş gibi geliyor. Baksanıza! Şu an kullandığımız, yanımızda taşıdığımız cihazlar o zamanlar da ne kadar büyükmüş. Bu açıdan bakınca içine bir böcek girmesi oldukça olası bir durum gibi görünüyor ama hata ararken pek akla gelebilecek bir şey gibi durmuyor.
Güveyi aldıktan sonra teknik kayıt defterine yapıştırıyorlar ve şu ifadeyi kullanıyorlar:
"15:45. Relay #70 Panel F (moth) in relay. First actual case of bug being found."
(Saat 15:45. Panel F'deki 70 numaralı rölede güve bulundu. İlk gerçek bug vakası.)
O dönem mühendisler arasında teknik arızalar için "Bug (böcek)" tabiri zaten kullanılıyordu ama bu sefer gerçekten bir böcekti.
Aslında 'bug' terimi, o dönem mühendisler arasında teknik arızaları tanımlamak için zaten kullanılan bir argo terimiydi. Hatta 1870'li yıllarda, Thomas Edison mektuplarına kadar dayanıyordu. Edison, icatları üzerinde beklenmedik hataları anlatırken bu ifadeyi kullanıyordu.
Peki, neden Grace Hopper o not defterine 'İlk gerçek bug vakası' diye yazdı?
Yani 1947'de o meşhur günün farkı şuydu: Mühendisler yıllardır mecazi anlamda kullandıkları 'bug (böcek)' tabiriyle, o gün fiziksel olarak ilk kez karşılaşmışlardı. O güve, soyut bir terimin somut bir kanıtı olarak deftere bantlandı.

Bugün, artık bilgisayarlarımızın içinde fiziksel kanatları olan güveler yok ancak milyonlarca satır kodun arasında saklanan, bazen sistemi kilitleyen, bazen de mantıksal hatalara yol açan modern böceklerimiz var. Bu olaydan sonra, sistemdeki hataları ayıklama işlemine de "debugging" denmeye başlandı. Bugün biz bir yazılımdaki hatayı düzeltirken aslında sembolik olarak o günkü güveyi cımbızla sistemden ayıklıyoruz.
İyi debuggingler!
Kaynakça:
https://americanhistory.si.edu/collections/object/nmah_334663
