Baktığım gibi, eğer statik olarak yazılan bir dilde doğal olarak çalışabiliyorsanız, statik yazım gitmenin yoludur. Genel olarak, bir yazı sisteminin amacı, tanımlanmamış anlambilim gibi işlemler gerçekleştirmenizi önlemektir (string) "hello" + (bool) true
. Bu işlemleri gerçekleştirmenizi önleyen ekstra güvenlik seviyesine sahip olmak, kapsamlı birim testleri olmadan bile kodunuzdaki hataları önlemenin iyi bir yolu olabilir . Yani, tür güvenliği, kodunuzun anlamsal doğruluğuna başka bir güven sağlar.
Ancak yazım sistemlerini doğru yapmak çok zordur. Orada inanmıyorum olan bu yazının yazıldığı anda doğada mükemmel bir tip sistemi. ("Mükemmel yazım sistemi" ile, ayrıntılı kod ek açıklamaları gerektirmeyen, yanlış pozitif yazım hataları üretmeyen ve yazım hatalarının programcının anlaması kolay olan katı bir yazım sistemini kastediyorum.) Ayrıca, var olan gerçekten iyi tip sistemleri anlamak zor. Haskell'i öğrenirken, (bana) doğru kod gibi görünen şeyi yazmaya çalışırken aldığım belirsiz tür hataların sayısını söyleyemem. Genellikle kod aslında doğru değildi (bu tür sistem lehine bir nokta), ama çok şey aldıtemel sorunları düzeltebilmem için derleyiciden gelen hata mesajlarını anlamak. OO dillerinde, sonunda kendinizi "bu argüman , kovaryant değil , girdi tipiyle çelişkili olmalı !" Yazım sistemleri düşündüğünüzden daha zor olabilir.
Değerli olduğu için, iyi tip sistemlerle gelmenin zorluğunun, Gilad Bracha'yı Newspeak'te takılabilir tip sistem desteği eklemeye motive eden şeyin bir parçası olduğunu anlıyorum .