Languages; strongly typed vs loosely typed

Languages; strongly typed vs loosely typed

Software programming languages have different metrics we use to divide them into groups, one of such metric involves their type. We have strongly typed (sometimes called static) and loosely typed (sometimes referred to as dynamic) programming languages, strongly typed languages require you to know exactly what you're doing and be able to communicate with immense specificity so the machine knows what you're saying, the dynamic however leaves the machine to figure it out. Your code won't build if the computer doesn't understand what you wrote (in strongly typed languages) whereas in loosely typed your code will run regardless and the errors will reveal themselves to you along the way.

It's said that strongly typed languages (eg C# and Java) are somewhat more difficult to learn than dynamic languages (eg. Python and Javascript). On the other hand, strongly typed languages are acknowledged to be faster and result in less bugs when properly written than loosely typed languages that expect the machine to figure things out. One of the critical skills in software development is being able to properly analyze and weigh these tradeoffs against one another before making decisions on which language to use.

You need to understand that strongly typed also takes a lot longer to write because of how explicit you need to be, while the word "var" is enough to create variables in a lot of loosely typed languages, with strongly typed, you have to declare the data type that is going to be enclosed in that variable. You need thorough knowledge of data types and data structures to be able to build solutions in strongly typed languages which is why they're considered to be harder.