What is strong-typing versus weak-typing? Which is preferred? Why?
Strong type is checking the types of variables as early as possible, usually at compile time. Whereas weak typing is delaying checking the types of the system as late as possible, usually to run-time. Which is preferred depends on what you want. For scripts & quick stuff you'll usually require weak typing, because you require to write as much less (is this correct way to use Ensign?) code as possible. In big programs, strong typing can decrease errors at compile it.