Geçtiğimiz gecelerden birinde saat epey ilerlemişti.(klasik CFD uykusuzluğu…) simsiyah terminalde hızlı hızlı akan kod satırları durdu ve terminalin en altında soğuk, yalın ve tartışmasız cümle belirdi:
Process finished with exit code 0
Yazılımla az çok ilgilenen herkes bilir; Exit Code 0, sistemin size verdiği en temiz rapordur. "Kod çalıştı, hiçbir sözdizimi hatası yapılmadı, hafıza taşmadı, sistem çökmedi ve işlem sıfır hatayla başarıyla tamamlandı" demektir. (Yani ortada ne bir mavi ekran var ne de panikleten kırmızı uyarı satırları :D)
Hatta işin teknik boyutuna bakarsanız, bilgisayar kütüphanelerinde bu durum kelimesi kelimesine EXIT_SUCCESS yani "Başarı" olarak adlandırılır. İşletim sistemi arka planda konfeti patlatmaktadır; çünkü ona verilen görevi hatasız bitirmiştir.
(İşte asıl tuhaflık tam olarak burada başlar. Sistem bunun bir "doğru" olduğunu söyler)
Siyah ekrandaki tek satıra bakarken zihnimde aniden bir şimşek çaktı. İnsan zihni, bir şeylerin yolunda gitmediğini hissettiğinde hep bir "çöküş" (crash) veya belirgin bir "hata" (bug) arar. Bir proje yürümüyorsa, bir girişim sonuç vermiyorsa ya da binbir emekle inşa ettiğimiz bir kariyer patikası bizi tatmin etmiyorsa; hemen suçlayacak bir yanlış, tespit edilecek bir kusur ararız. Sanki sistemin durması için illa büyük bir kriz çıkmalıymış gibi...
Oysa hayatın en tuhaf gerçeği tam olarak burada saklıdır: Bazen hiçbir hata ya da yanlış yoktur. Her şeyi kuralına göredir, bütün adımlar doğru atılmıştır ama işlem yine de biter. Çökerek değil; sessiz, kusursuz, doğru ve Exit Code 0 vererek...
Bellekteki O Görünmez Boşluk: NullPointerException
Peki, her şey bu kadar kuralına uygun işlediyse, sistemde tek bir kırmızı çizgi bile yoksa, içimizdeki eksiklik hissi nereden geliyor?
İşte burada bilgisayar dünyasının bir başka klasik belalısı giriyor devreye: NullPointerException.
Yazılımda nesneyi çağırırsınız; kod yapınız mükemmeldir, mantık kusursuzdur. Ancak sistem, var olduğunu varsaydığı o veriyi bellekte bulamadığında aniden durur. Veri oradadır sanırsınız ama aslında o referans yoktur(null).
Hayatta da tam olarak bunu yaşamıyor muyuz?
Kariyerimizde, projelerimizde veya geleceğe dair kurduğumuz o büyük planlarda tüm değişkenleri tek tek tanımlarız:
Disiplin = True
Çaba = 100%
Zaman = Maksimum (buraya işler yetişsin diye uykusuz kalınan geceler ve içilen bilmem kaçıncı fincan kahve dahil :D)
Dışarıdan bakan biri için sistem tıkır tıkır çalışmaktadır. Hatta biz bile her şeyin yolunda olduğuna, bütün parçaların oturduğuna yürekten inanırız. Ancak günün sonunda sistemden "Tamamlanmışlık" veya "Anlam" değişkenini çağırmasını istediğimizde, bellek bize kocaman bir null döndürür. (Çünkü biz sistemin kusursuz akışına odaklanırken; 'anlam' ya da 'tamamlanmışlık' dediğimiz şeyin bir kod satırıyla zorla atanamayacağını bazen unuturuz...)
"Olmayabilir" Değişkeni
Bir projenin, bir fikrin ya da yıllarca emek verilen bir yolculuğun nihayete ermesi için illa büyük başarısızlıklar, devasa krizler yaşamak gerekmez. Bazen algoritma kusursuzdur ama üretilen çıktı sizin aradığınız şey olmayabilir.
Hayatta bazen bütün tuşlara doğru basarsınız. Bütün stratejiniz doğrudur. Geceyi gündüze katar, tüm şartları sağlarsınız. Ama yine de o hayal ettiğiniz zirveye ulaşamayabilirsiniz.
İşte bilgisayarın o soğuk mantığı ile hayatın esnek gerçekliği tam bu noktada ayrılır: Bilgisayar deterministtir, girdiler doğruysa çıktı garantidir. İnsan hayatı ise lineer olmayan, öngörülemeyen sayısız değişkenle doludur. Bazen tüm denklemler doğru kurulsa bile sonucun olmama ihtimali vardır.
Bizler buna yazılım hatası, başarısızlık ya da beceriksizlik demiyoruz.
Buna doğrudan "Hayat" diyoruz.
Ve belki de en önemlisi şudur: Bir sürecin, bir projenin ya da hayatımıza dokunan bir dönemin sonlanmış olması, onun başarısız veya değersiz olduğu anlamına gelmez. Mesele sadece çıktı ekranında ne yazdığı değil; o süreç yaşanırken, adımlar atılırken hissedilen o katıksız güzelliktir. Geriye dönüp baktığında arkada bir "keşke" bırakmamak, yaşanan her anın hakkını vermiş olmanın huzurunu taşımak ve yolda yürüyebilmiş olmaktan ötürü mutlu olabilmektir. Ortada çözülmesi gereken bir sorun, başarısızlık ya da hata yoktur; sadece vakti geldiğinde zarafetle tamamlanmış güzel bir deneyim vardır. (Ki zaten hayatta asıl kazanç, sonucundan bağımsız olarak o güzel süreçleri yaşayabilmiş olmak değil midir? )
Şimdi ekranı kapatıp kendi projelerinize, emek verdiğiniz yollara şöyle bir dışarıdan bakın.
Hata arayıp durduğunuz, "Nerede yanlış yaptım?" diye kendinizi yediğiniz o anlarda; belki de ortada hiçbir yanlış yoktur. Belki de sistem sadece görevini tamamlamış ve durmuştur.
Ve belki de asıl olgunluk; sıfır hatayla biten ama beklediğimiz anlamı vermeyen süreçlerin ardından panikle hata aramak değil, o “Exit Code 0” satırını sakince okuyup, yaşanan tüm güzelliklerin hakkını vererek ve güzel hatıralar koyarak yola tebessümle devam edebilmektir.
Bir sonraki yazıda görüşmek dileğiyle... (: