What is strong-typing and weak-typing? Which is preferred? Why?

What is strong-typing and weak-typing? Which is preferred? Why?

Strong-typing can be termed as “type” check is done at the compile time whereas Weak-typing can be termed as “type” check in done at runtime.
It depends upon situation-situation, which one will be preferred. For small-coded programs, we can use weak-typing and for large-coded programs, we can use strong-typing.