Atitit. future trends and evolutionary results of programming languages
1 languages, like species, can form evolutionary trees, and branches that have no future will wither and die off. 1
2 Machine Language 1
3 assembly Language 2
4 C language , hardware abstraction Layer 2
5 High-level language:java,.net cross-platform (OS) abstraction Layer VM 2
6 DSL Domain programming language ( across programming languages ) 2
6.1 Implementation Method :: semantics and syntax separate 2
6.2 Structure DSL,DSL interpreter 2
6.3 Unified Development Language 3
6.4 each domain feature section , use the class library to solve the 3
7 Language Features Development 3
7.1 oo+ 3
7.2 Function 3
7.3 Dynamic (non compilation) or compile?? 3
7.4 Strong type or weak type??? 4
7.5 for natural language or simple ?? 4
7.6 Abstract Ability 4
7.7 Delete Syntax Noise 4
7.7.1 Grammatical Noise 4
7.8 powerful IDE,VM 5
8 The evolution of programming languages, the thought behind the beginnings of Discovery : The complexity between any two systems can be masked by adding an abstraction layer 5
9 Reference 5
1 languages, like species, can form evolutionary trees, and branches that have no future will wither and die off.2Machine Language
The earliest programming language was the cassette, the machine language, which had no semantics and no syntax, and that the operators and data were mixed together, biased toward specific devices, and relied on the feeling of hardware.
Author:: Old Wow's paw attilax Ayron, email:[email protected]
Reprint please indicate source: Http://blog.csdn.net/attilax
3Assembly Language
Then, the assembly language appears, assembly language defines the basic grammatical structure, defines the operator and data type, but the assembly language is specific to the hardware programming
4C Language ,Hardware Abstraction Layer
For the assembly language problem, mainly to solve the cross-hardware platform, add an abstraction layer, this is the hardware abstraction layer
5Advanced Language:java,.net Cross-platform(OS)Abstraction LayerVMS
To solve the cross-platform problem of C language
6DSL Domain programming language (spanning programming languages)6.1Implementation Method::semantic and syntactic separation
and one of the languages programming languages are generally syntactically and semantically bound together.
6.2 Structure DSL,DSLInterpreter
6.3a unified development language
Now more and more this trend, each language is adding the characteristics of other languages, enhance their own features, the later languages are becoming more and more similar, the function is more and more identical
6.4each domain feature section, use the class library to resolve
Or a second-hand DSL??
7 Language Features Development 7.1 oo+7.2 Function7.3 dynamic (Noncompile) or compile??
Comprehensive consideration, the industrial level of source protection considerations ha , or to compile , Yaneng with a python Jas 10 , Common situation ha not compiler , to the client when the child compiled .
Dynamic means more flexibility, meaning developers have more "magic" to play. And developers will naturally have a sense of intimacy with dynamic language, which is human nature.
But where dynamic languages, JavaScript, Python, and Ruby are, in fact, have been meant to be out of the development of formations.
While flexibility means less restraint, less restraint means that large-scale programs are difficult to write. So far, it is very rare to hear more than 100,000 line-level JS language projects, which is somewhat related to the dynamic nature of JS.
Conversely, the low-dynamic C language is now the perfect choice for driver and OS kernel development, because it seems like the driver doesn't need the abstractions that look like NB--even if you use C + +, it's the same as C.
7.4 Strong type or weak type???
and IDE Support No.
Therefore, comprehensive consideration, industrial level is still a strong type of the world.
Or , the language supports the weak type , can also be strong type ... When necessary , can be strong type ...
7.5 for natural language or simple??
Cobol,ada 's strong understanding ... ordinary people can understand. ..
In most cases , it 's still a simple feature OK... and a Java replaces the Cobol,ada .
7.6 Abstract Capabilities
Abstract ability should be the first priority of language evolution at this stage, abstract means nothing but functional, process and object-oriented three, look at the popular history of computer language, it is not difficult to see the function of the formula = = Process-oriented object and function regression such law. Lisp has always been highly valued in academia, but its commercial applications have been depressed, and its abstract ability has been an important reason.
7.7 Delete Syntax noise 7.7.1 syntax noise
In addition to the function and design of language, "looks" is also very important. Here to mention a concept of grammatical noise, such as JS inside the function, compared to the lambda expression, this noise is more
Arr.some (function (x) {return x<2});
and C # can be written like this:
Arr.some (X=>X<2);
In this, the function keyword, return keyword, all kinds of symbols, in fact, the actual significance is not big, because JS grammar design, and must add, this is a kind of noise.
Interestingly, to the language of Python to "de-noising" pursuit reached the extreme, even at the blank mark to kill curly braces, this practice led to its mixed, like people especially like, not like people particularly annoying.
7.8 powerful IDE,VM
8The evolution of programming languages, the thought behind the beginnings of Discovery : The complexity between any two systems can be masked by adding an abstraction layer
9 references
Programming language Evolution -csdn.net.htm
The evolution of programming languages -God is coder- Blog Park . html
The evolution of programming language--the variable -csdn forum -csdn. net- China's largest IT Technology Community . htm
Atitit. Future trends and evolutionary results of programming languages