Loosely Typed and Strongly Type Languages
As a developer, you will find yourself struggling against many known programming languages, C#, Javascript, Go, Ruby, Scala, etc.. and also many new ones to come but all of them can be classified into types, Loosely Typed and Strongly Typed programming languages. Both of them with their advantages and disadvantages.
What does it mean for a programming language to be loosely typed or strongly typed?
A strongly typed programming language is always pending of their variable data type. This is because the system checks the object type before an operation requiring a certain type is called on such variable giving either a compilation error or runtime error. An example of strongly typed language is phyton.
On the contrary, a loosely typed programming language does not have such strong bounds on their variable data type. The compiler or interpreter may allow some errors to slip by when it checks if a wrong operation is being called on a variable regardless of its type.
Loosely typed languages are those where type confusion can happen and eventually produce errors that are difficult to find and detect, which differ them from strongly type languages where these kinds of errors are caught either in compilation time or runtime. An example of a loosely typed language is javascript.
Advantages and Disadvantages
Strongly typed languages give more structure and safety to the program and many errors are caught during the compilation time. Making it easier to debug and test your code.
Loosely typed languages are usually way faster and provide a lot more flexibility, but errors might slip during compilation time producing runtime errors or strange behaviors in the application.
Conclusion
At the end of the day, it is up to the developer to decide what kind of language is better for his project, most of the time a combination of many. The important part is to be able to make the best use of their strength.