Many languages such as Java and C use what is known as strong or static variable typing. This means that when you declare a variable in your application code you must define the variable type.
Dynamic typing was here. Static typing is made of failure. (I recently came upon a case where a certain control had two completely similar interfaces for web and client deployment, however, those interfaces resided in different namespaces, so I ended up copypasting half the methods just to change the namespace. This made me rage so hard.)