static typing vs dynamic typing