The basic concept

Static languages (strongly typed languages) Static languages are those in which the data type of a variable is determined at compile time. Most statically typed languages require that the data type be declared before the variable can be used. For example: C++, Java, Delphi, C# and so on.

Dynamic languages (weakly typed languages) Dynamic languages are languages that determine data types at run time. A variable does not require a type declaration before it is used; the type of a variable is usually the type of the value to which it is assigned. For example PHP/ASP/Ruby/Python/Perl/ABAP/SQL/JavaScript/Unix Shell, and so on.

Strong typing language A language that enforces data type definition. That is, once a variable is assigned a data type, it will remain that data type forever unless cast. For example, if you define an integer variable a, it is impossible for the program to treat a as a string. Strongly typed languages are type-safe languages.

Weakly typed defining language A language in which data types can be ignored. In contrast to strongly typed languages, a variable can be assigned values of different data types. Strong typing languages may be slightly slower than weak typing languages, but the rigor that comes with strong typing languages can effectively prevent many errors.

The difference between

Strongly typed languages are languages that cannot be converted once the type of a variable has been determined. In weakly typed languages, on the other hand, a variable’s type is determined by its application context.

The advantages of static languages Because of the mandatory declaration of types, IDE has strong code awareness, so in the implementation of complex business logic, the development of large business systems, and those applications with a long life cycle, relying on IDE for system development is very secure; Because static languages are relatively closed, the infringement of third-party development packages on code can be minimized. The advantages of dynamic language thinking is not bound, can play freely, put more energy on the product itself; Focus on the implementation of business logic, thinking process is the implementation process;