Bir değişken tanımlarken türü açıkça yazmak mı, yoksa derleyicinin çıkarmasına mı bırakmak gerekir? Tip çıkarımı vs açık tip bildirimi sorusu basit görünür; ama büyük kod tabanlarında ve ekip çalışmasında verilen bu karar birikimlerin ciddi sonuçları olur. Tip çıkarımı, derleyicinin bağlamdan yola çıkarak değişkenin türünü kendiliğinden belirlemesidir. `var x = 42` yazıldığında x'in int olduğunu derleyici bilir; yazan kişi tekrar etmek zorunda kalmaz. Kotlin, Swift, Rust ve C# bunu kapsamlı biçimde destekler. Kod daha az tekrarcı olur; özellikle uzun generic tür isimlerinde bu kazanç belirgindir. Açık tip bildirimi ise türü kodun içine gömer. `int x = 42` ya da `List<String> names = new ArrayList<>()` yazmak, kodu okuyan birinin IDE ya da derleyici yardımı olmadan türü anlayabilmesini sağlar. Tip çıkarımı vs açık tip bildirimi karşılaştırmasında açık bildirimin en güçlü yanı budur: ek araç gerektirmeden okunabilirlik. Peki tip çıkarımı okunabilirliği düşürür mü? Bağlama göre değişir. Karmaşık bir fonksiyon çağrısının sonucunu `val result = processData(input)` olarak atadığınızda result'ın türü açık değildir; okuyucu için bir soru işareti doğar. Öte yandan `val names = listOf("Ali", "Veli")` gibi açık bir bağlamda tip çıkarımı hem doğaldır hem de gereksiz tekrarı ortadan kaldırır. Tip çıkarımı vs açık tip bildirimi tercihini etkileyen bir başka etken değişkenin kapsamıdır. Dar kapsamlı, kısa ömürlü yerel değişkenler için tip çıkarımı uygundur. Fonksiyon parametreleri ve dönüş tipleri için açık bildirimi tercih eden pek çok stil rehberi bu kararı API sözleşmesinin netliği açısından savunur. Ekip bağlamında standart belirlemek gerekir. Karma bir yaklaşım (yerel değişkenlerde çıkarım, public API'larda açık bildirim) çoğu dil için makul bir orta yoldur. Rust bu konuda daha katıdır: yerel değişkenlerde çıkarım norm, ancak fonksiyon imzalarında açık tip zorunludur. Kısa değerlendirme: Daralan kapsamda tip çıkarımı kodu sadeleştirir. Geniş kapsamlı ya da public arayüzlerde açık tip bildirimi daha az belirsizlik bırakır.