This is a creation in Article, where the information may have evolved or changed.
A computer is essentially a machine that can run a series of commands, such as a light with two commands on and off, and a computer that is more complicated than a light bulb.
The programming language is the command that controls the computer, like the electric light opens we use the numeral to represent, the close we are to use the numeral to say. But for the natural language of mankind 01 such commands are too complex. If I want the computer to perform subtraction calculations, it may be necessary to enter a string of 01 combinations that are not understood at all. Fortunately, later invented the assembly language.
Assembly
Assembly language allows us to use letter symbols to send instructions to the computer. Like what:
Action: The contents of the register BX are sent to Microsoft Dynamics AX
1000100111011000 机器指令mov ax,bx 汇编指令
Assembly is a direct CPU-oriented programming language, and if we want to develop more advanced programs using assembly language, it may be laborious. At this point the static type of language appears.
Static language
What are the static languages we call? such as the C language, we can be written in English logic and data processing, these English code through the C language compiler compiled into 01 of this machine language, so that it can be run on the computer. The difference is that we can use human natural language to write programs as much as possible, and then translate the compiler into a language that the machine can read. In addition to the C language accident and static type language such as C++,java,golang,erlang, they are different and distinctive. The above static type language Bad Judge good or bad distinction, the main difference still lies in the compiler's merits and demerits, and in different application scenarios of performance.
Static language also has its own problems, the syntax is complex, each test needs to compile, development efficiency, and now the computer hardware has developed more than we need to manually to operate the memory. So the dynamic class language is revealed.
Dynamic language
A dynamic language is a program that compiles code into a machine to run when the program is running, and the advantage is that it doesn't take time to compile. The results will be seen in a minute. such as php,python,javascript are dynamic type languages. Because the dynamic type language involves the runtime only compiles the machine to run the program, obviously does not have the static class language compiles directly to the machine code to run the speed fast.
About dense compute and dense IO
When it comes to dense computing business, such as processing large amounts of data, it's clear that using statically typed languages is a better choice because we want CPU or GPU computing devices to be able to operate in a faster way.
If the business of dense IO is involved, such as the c10k problem of the website, there is not much difference between static language and dynamic language, because the most critical problem of this type of business is IO efficiency rather than computational bottleneck, so it is the key to allow the machine to do more IO operations within a unit time. It also involves some process, thread, and association knowledge.