Geçtiğimiz 15 (özellikle son 10 yıl) yıllık süre içerisinde, birçok programlama dili geliştirildi. Yazılım dünyasından kimileri, bu dönemi “Programlama Dilleri Çağı” olarak tanımlıyor. Bir nebze haklıklarda, çünkü inanılmaz sayıda programlama dili tasarlanıp yeni özellikler ekleniyor.

Teknoloji de diğer tarafdan baş döndürücü bir hızda ilerliyor ve günümüz ihtiyaçları sürekli değişiyor. Bunun yansımaları, elbet yazılım sektöründe de çokça görülmeye başlandı. Bu yüzden, yazılım geliştirme süreçleri ve özellikle kullanılan ortamlar dinamik bir yapıya dönüştü. Artık projeler, kimi zaman bir platformda, kimi zaman başka bir platformda ilerliyor. Kullanılan araçlarda, ihtiyaçlar doğrultusunda değişkenlik göstermeye başladı kuşkusuz.
Yazılım geliştirme süreçlerinde kullanılan araçlardan birisi de programlama dilleri. Her yazılım geliştiricisi, her programlama dilini doğal olarak bilemeyeceği için, projelerde kullanılan değişik dillere adaptasyon biraz sancılı oluyor. Programlama dilleri açısından olaya bakarsak amaç hiç bir zaman değişmez, bilgisayarlara derdimizi anlatabilmek. Tek farklılık gösteren nokta, bu amacı gerçekleştirebilmek için izlenen yollar kulanılan methodlar. Bu yüzden, programlama dilleri, bazı noktalarda birbirlerinden ayrışırlar. Bu konulardan birisi de “Type Systems (Tip Sistemleri)”. Geliştiriciler programlama dillerinin kullandığı farklı özellikler ve methodlar hakkında bilgi sahibi olurlar ise, bir dilden diğerine geçiş çok daha kolay bir şekilde yapılabilir.
Yeni bir programlama dilini incelemeye başladığımızda, hemen karşımıza type konularında birtakım bilgiler verilir. Örneğin Java static type checking yapan veya Python dynamic type checking yapan bir dildir şeklinde bir açıklamayla karşılaşırız. Bunlar bazı programcılar tarafından önemsenmese de aslında dili öğrenme aşamasında oldukça önemlidir. Dilin mantığını kavrama da bize oldukça fayda sağlarlar.
(daha fazla…)