Python dinamik ve güçlü, Java statik ve güçlü, Php dinamik ve zayıf tipli dildir. Peki statik, dinamik, güçlü, zayıf tipli ne demek ?

Statik Tip

Java, Go ,C ve C++ statik tipli dillerdir. Statik tipli dillerde değer üreten herşeyin tipi belirtilmek zorundadır. Bu dillerde tip denetlemesi derleme zamanında yapılır.

int i;
i = 5;

int hop () {
        return 0;
}

Dinamik Tip

Dinamik tipli dillerde değerlerin tipleri çalışma zamanında belli olur. Bu tür dillere python, ruby, php gösterilebilir.

x = 5
name = "askn"

Strong(Güçlü) Tip

Değişkenler mutlaka veri tipine bağlıdır. Java, Python, Go, Ruby güçlü tipli dillerdir.

[1] pry(main)> a = "askn"
=> "askn"
[2] pry(main)> a = a + 1
TypeError: can't convert Fixnum into String
from (pry):2:in `+'

Yukarıdaki ruby örneğinde bir stringe sayı eklememize izin vermedi. TypeError hatası verdi.

public class Hop {
        public static void main (String args[]) {
                String a = 1;
                System.out.printf(a);
        }
}

Java örneğinde ise string olarak deklare ettiğimiz a değişkenine integer bir değer atamaya çalışıyoruz. Tahmin ettiğiniz üzere derlenirken hata verecek. Yani strong tipli dillerde değişken türleri ile yaptığınız işlemler sıkı kontrol altındadır.

Weak(Zayıf) Tip

Bu tipe örnek olarak php gösterilebilir.

<?php
$foo = "x";
$foo = $foo + 2; // not an error
echo $foo;
?>

Gördüğünüz üzere bir hata vermedi. Güçlü tipli dillerde olduğu gibi değişkenlerle yapılan işlemler sıkı kontrol edilmiyor.

Kaynaklar

Aşkın Gedik Ruby on Rails Developer