Bir yazılımcı yeni bir dal açtığında görünüşte sıradan bir işlem yapar: Mevcut kod tabanının belirli bir anına işaret eden yeni bir geliştirme yolu oluşturur. Fakat biraz geri çekilip baktığımızda sahne tuhaflaşır. Ana dalda kullanıcı arayüzü mavi kalırken başka bir dalda kırmızıya döner; birinde hata düzeltilir, diğerinde yeni bir hata doğar; üçüncüsünde ise proje bütünüyle terk edilir. Aynı geçmişten çıkan farklı gelecekler, Git deposunun içinde yan yana yaşamayı sürdürür. Bu manzara, kuantum mekaniğinin çoklu dünyalar yorumunun şaşırtıcı derecede kullanışlı bir dijital maketini andırır.
Commit, ölçüm ve ayrılan gelecekler
Çoklu dünyalar yorumuna göre kuantum ölçümü, olasılıklardan yalnızca birini seçip diğerlerini yok etmez. Bunun yerine evrenin kuantum durumu, farklı sonuçların gerçekleştiği ve birbirleriyle etkin biçimde etkileşemeyen dallara ayrılır. Teknik olarak burada gündelik anlamda yeni evrenler üreten kozmik bir fotokopi makinesi yoktur; evrensel dalga fonksiyonunun üniter evrimi ve dekoherens vardır. Git dalı da benzer biçimde yoktan bir proje yaratmaz. Bir commit’e yeni bir referans ekler ve bundan sonra yapılacak değişikliklerin ayrı bir tarih oluşturmasına izin verir.
Benzetmenin en güçlü yanı, olasılıkla gerçekleşmiş durum arasındaki farkı görünür kılmasıdır. Bir özellik yalnızca ekip toplantısında tartışılıyorsa henüz olasıdır. Dal açılıp kod yazıldığında bu gelecek çalıştırılabilir hâle gelir. Test ortamı, alternatif dünyanın laboratuvarıdır: Uygulama derlenir, kullanıcı davranışları taklit edilir ve seçimin sonuçları gözlenir. Böylece yazılım geliştirme, karşı-olgusal düşünmeyi somutlaştırır. “Başka türlü yapsaydık ne olurdu?” sorusu felsefi bir hayal olmaktan çıkar; indirilebilir, ölçülebilir ve gerektiğinde silinebilir bir yapıya dönüşür.
Birleşebilen dünyalar
Ancak analojinin kırıldığı önemli bir nokta vardır: Kod dalları birleşebilir. Bir özellik dalındaki değişiklikler ana dala taşınabilir, iki ayrı tarih ortak bir commit’te buluşabilir. Çoklu dünyalar yorumundaki makroskobik dalların yeniden girişim göstermesi ise dekoherens nedeniyle pratikte olağanüstü derecede zordur. Evrenin “merge conflict” çözüm ekranı bulunmaz. Yazılım dünyasında bile birleşme sihirli değildir; aynı satır farklı biçimlerde değiştirildiyse insan kararı gerekir. Çatışma, alternatif geleceklerin mantıksal olarak uyumlu olmasının, teknik olarak birlikte var olabilecekleri anlamına gelmediğini gösterir.
Bu fark, programlama açısından değerli bir ders üretir. Her dal korunmaya değmez. Deneysel yollar çoğaldıkça test yükü, güvenlik riski ve bakım maliyeti artar. Sonsuz dijital evren fikri romantik görünse de pratikte depo karmaşası yaratır. İyi bir ekip, dallanmayı özgürlük; birleştirmeyi ise seçim disiplini olarak görür. Kısa ömürlü dallar geri bildirim süresini azaltır, otomatik testler hangi dünyanın yaşanabilir olduğunu belirler, kod incelemesi de seçilen geleceğin ortak akla dayanmasını sağlar.
Versiyon kontrolü bir zaman makinesi midir?
Git yalnızca alternatif gelecekleri değil, geçmişin yeniden yorumlarını da saklar. Bir commit’e dönmek zamanda yolculuğa benzer; fakat geçmişi gerçekten değiştirmez, ondan yeni bir tarih başlatır. Rebase işlemi ise tarihin anlatısını yeniden düzenler: Olaylar aynı değişiklikleri taşısa bile daha temiz bir sıraya yerleştirilir. Bu durum, kimliğin yalnızca mevcut koddan mı, yoksa o koda ulaşan tarihçeden mi oluştuğu sorusunu doğurur. İki dal sonunda aynı dosyalara sahipse aynı yazılım mıdır? İşlevsel açıdan belki; denetlenebilirlik, güven ve sorumluluk açısından hayır.
Sonuçta Git, çoklu dünyalar yorumunun fiziksel bir kanıtı değildir. Kuantum dallanması doğanın matematiksel betimlenmesine, kod dallanması ise insanların tasarladığı veri yapılarına dayanır. Yine de bu dijital simülasyon güçlü bir düşünme aracıdır. Bize tek bir geleceği tahmin etmeye çalışmak yerine birden fazla geleceği ucuzca üretmeyi, sınamayı ve karşılaştırmayı öğretir. Belki de iyi yazılım geliştirme, doğru evreni ilk seferde bulma sanatı değildir; kötü evrenleri erken keşfedip yaşanabilir olanı dikkatle ana dala birleştirme sanatıdır.