A **dynamically typed** [[Programming Language|programming language]] is a language that uses [[Strong Typing|strong typing]] but whose type safety is enforced during runtime. Even though it is commonly mistaken for [[Weak Typing|weak typing]], dynamic typing enforces strong types: the difference is that **the types are associated with values, and not variables**.