▲ | baq 3 months ago | ||||||||||||||||||||||||||||||||||||||||||||||
strong typing: 2 + "2" is an error (e.g. Python vs JS) static typing: 2 + "2" does not compile/parse (e.g. Python vs mypy, Typescript vs JS) this is a very simplistic example, but should get you to feel the difference. | |||||||||||||||||||||||||||||||||||||||||||||||
▲ | volemo 3 months ago | parent | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||
> static typing: 2 + "2" does not compile/parse (e.g. Python vs mypy, Typescript vs JS) I think this example is not correct, because static typing doesn’t affect how values of different types interact. And while I don’t know of any staticly typed language where specifically `2 + “2”` is a valid expression, statically typed languages definitely can be weakly typed: the most prominent example is C where one can combine values of different types without explicitly converting them to the same type (`2 + 2.0`). I believe strong/weak and static/dynamic are orthogonal. And my examples are: - Strong: `2 + “2”` is a error, - Weak: `2 + “2”` makes 4 (or something else, see the language spec), - Static: `var x = 2; x = “2”` is an error, - Dynamic: `var x = 2; x = “2”` is fine. | |||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||
▲ | hoseja 3 months ago | parent | prev [-] | ||||||||||||||||||||||||||||||||||||||||||||||
weak typing: 2 + "2" is 22 | |||||||||||||||||||||||||||||||||||||||||||||||
|