Simple understanding of OO and virtual machines
2003.9 (all copyright reservations)
First, OO
OO (Object Orient) is originally a compiler. It is a program master to make the compiler to compile data and function packages and inheritance, such as inheriting the readability and reuse of the code.
The increase in complexity of large computer systems and the continuous increase in software development has gradually become clear and simple, and the suppliers of each compilation tool (including in the development environment) continue to launch the OO compiler. , Achieving a large system of OO theory has developed rapidly. However, for small applications, whether it is not much difference.
OO is finally the syntax supported by the compiler. The result after the OO is compiled or the call to the operating system API, so the language that is supported by the OO is actually the language defined above the machine instruction and the operating system API. Language. Further, the language supported by the OO compiler is the accumulation of standard OO languages (mainly compiled) and operating system feature OO languages (mainly supported by operating system support), some said that its ratio is 3 to 7. Therefore, the implementation capability of an OO language is mainly determined by the compiler and the operating system API. Of course, its supporting IDE has a great impact on programmers.
OO syntax is ultimately decisive to the compiler - of course, since then has formed a decisive impact on software developers and began to have a greater impact on the industry.
OO thinking has also influenced the operating system API and application software. It supports the form of the compiler is different. The operating system is mainly the support form of OO is mainly components, and there is no inevitable connection between class libraries and components. - Although the component is like a class compile. These two development forms don't have much difference in programmers - all produce their own OO libraries on the basis of basic OO libraries. However, for the application of the OO library, the OO supported by the compiler can only support the reuse of the code base, and the OO supported by the operating system can support the application, the application system is reused. In addition, the API of the operating system also begins to transition to OO - although its internal structure is not changed.
Second, the virtual machine
A virtual machine is an application that has developed a version for each operating system. It provides a set of standard APIs (some also provide real-time compilers), simulating a standard CPU and operating system API set, in it The application can be like running on a real CPU with the operating system. The virtual machine actually does mainly to "translate work" from its custom API to the operating system API. The advantage of a virtual machine is that the programmer's program can be multiplexed between the operating system, and the other is that the security reliability of the operating system can be added - equivalent to adding a system run level.
Similar to OO development, the increase in complexity of large computer systems and the increasing application of the application makes more and more development requirements based on multi-operating systems, and the standard component libraries on virtual machines and above are clearly reduced, increased. Have a good choice. However, for small applications, it is not much different from the virtual machine.
Third, OO and virtual machine
OO doesn't have a necessity with the virtual machine. Virtual machine-based compiler vendor If you provide support OO compiler, the programmer is developed with OO; if not the OO compiler is not an OO compiler, it is developed with a Basic language - of course This is only a hypothesis so far.
OO is the same as the virtual machine - it is for multiplexing, so the combination of the two gradually became the main model of the development of large systems, and further attracting large system vendors compete to transfer their own systems to this mode. ,change.
Fourth, various OOs, competition between various virtual machines
OO thinking will not compete, competition is the compiler (and the syntax thereof). However, the compiler relies primarily on the virtual machine, so the competition of the virtual machine is the main. If the virtual machine is a set of standard mode, it will quickly spread the competitive advantage, which is unrealistic, so the performance of each virtual machine will increase rapidly, and the components will increase rapidly, but this is increasing with cross-operative systems. conflict. Speaking of the bottom, the OO compiler, the virtual machine is a development tool, plus the different support of the underlying operating system, the supplier will continue to compete, balance between platforms and high-level functions, this probably is a future A main competition mode for a while. Further, the entire industry application development will be transformed into this mode.
V. The impact of competition
Is this industry change like a bubble in the initial? Basically, it is basically not looking back. The Internet foam is a foreman to toss, but this time is the insider is tossing, and it is everyone.
The impact on ordinary programmers. Even if you look at the OO and the virtual machine, you will be deeply painful, but the pace of changes in the changing the rules of the game is no doubt, otherwise it is marginalized until it is eliminated. In fact, this is the revolution that developed masters, and the procedure development benefits is greater than the disadvantage, and the programmer will eventually benefit.
The impact of the operating system. The importance of the operating system will gradually reduce the inevitable system of the operating system unless tightly combined with the virtual machine. Many additional features of the operating system will transfer to virtual machines - appears in the form of components on the virtual machine.
Is this the opposition of IBM and Microsoft? I think it is, but don't ask me who will win, the master's competition is the internal motivation of our industry development. I hope that competition can keep it for a long time, don't return to IBM's monopoly era, or enter Microsoft's thorough monopoly. era.