JavaScript and other weakly typed languages suffer from the same problem. What's the easy way to distinguish between Number, String, Boolean etc? The same variable can hold different type of data during the execution of program. This is very confusing!