I happen to think that there are meaningful things you can express by saying &quot;Strong Typing&quot; or &quot;Weak Typing&quot; (<a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=9256695" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=9256695</a>), though &quot;well defined&quot; might be stretching it. However, I don&#x27;t like this definition at all.<p>Both JavaScript and Python prohibit operations on types that don&#x27;t support them. They both have TypeErrors (or something similar) that are thrown at runtime for certain operations, while others produce a result.<p>The difference is just that JavaScript allows a bunch of operations that Python prohibits, including several that serve almost no purpose.<p>Is allowing 1 + &quot;1&quot; allowing an operation on a type that doesn&#x27;t support it, or does your language just allow adding numbers and strings? There is no principled way to answer that question.