Orijinal tweeter burada. :)
Her şeyden önce, tweet'imin çok ciddiye alındığı için biraz eğlendim / şok oldum! Bunun yaygın bir şekilde yayılacağını bilseydim, yazmak için 30 saniyeden fazla zaman harcayacaktım!
Thiago Silva, "statik" ve "dinamik" ifadelerin , tür sistemlerinden ziyade tür denetimini daha doğru tanımladığını belirtmekte haklıdır . Aslında, bir dilin statik veya dinamik olarak da yazıldığını söylemek gerçekten doğru değildir. Aksine, bir dilin bir tür sistemi vardır ve bu dilin bir uygulaması, statik denetimi veya dinamik denetimi ya da her ikisini birden ya da her ikisini birden kullanarak (bu çok cazip bir dil uygulaması olmayacaktır!) Tür sistemini zorlayabilir.
Olduğu gibi, statik kontrole daha uygun belirli tip sistemleri (veya tip sistemlerinin özellikleri) ve dinamik kontrole daha uygun belirli tip sistemleri (veya tip sistemlerinin özellikleri) vardır. Örneğin, diliniz bir programın metninde belirli bir değerin her zaman bir tamsayılar dizisi olması gerektiğini belirtmenize izin veriyorsa, o özelliği doğrulamak için statik bir denetleyici yazmak makul olur. Tersine, dilinizde alt tip varsa ve downcasting'e izin veriyorsa, bir downcast'in çalışma zamanının geçerliliğini kontrol etmek oldukça kolaydır, ancak derleme zamanında bunu yapmak son derece zordur.
Benim tweet'imle gerçekten kastettiğim, dil uygulamalarının büyük çoğunluğunun bir miktar dinamik tip kontrolü gerçekleştirmesidir. Veya aynı şekilde, dillerin büyük çoğunluğu statik olarak kontrol edilmesi zor (imkansız değilse de) bazı özelliklere sahiptir. Downcasting bir örnektir. Diğer örnekler aritmetik taşma, dizi sınırları kontrolü ve boş kontrolü içerir. Bunlardan bazıları bazı durumlarda statik olarak kontrol edilebilir, ancak genel olarak, çalışma zamanında herhangi bir kontrol yapmayan bir dil uygulaması bulmakta zorlanırsınız.
Bu kötü bir şey değil. Sadece, dillerimizin zorlamasını istediğimiz birçok ilginç özelliğin olduğu ve statik olarak nasıl kontrol edeceğimizi gerçekten bilmediğimiz bir gözlem. Ve "statik türler" ve "dinamik türler" gibi ayrımların, bazı insanların inandığınız kadar kesin olmadığını hatırlatmak isteriz. :)
Son bir not: "güçlü" ve "zayıf" terimleri programlama dili araştırma topluluğunda gerçekten kullanılmaz ve gerçekten tutarlı bir anlamı yoktur. Genel olarak, birisinin bir dilin "güçlü yazım" olduğunu ve başka bir dilin "zayıf yazım" olduğunu söylediğinde, en sevdikleri dilin ("güçlü yazım" olan dil) diğer dilin ("zayıf yazım" olan dil), en sevdikleri dilin ("zayıf yazım" olan dil) diğer dilin ( biri "güçlü yazarak") değil.