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.