OO, OO, and its limits (1) Please contact us (this article reprinted from the software engineering expert network www.21cmm.com, does not mean Gigix perspective) 1, what is software development? The process of software development is to use each The computer language maps people's real world to the process of computer world; the current computer's mathematical theory basis is the map of the Monastery of the Mountain Nasal of the computer, the famous Graphic Tu Leading in 1937. In less than ten years, the electronic computer was born (1945). (ENAK) We all know that one of the main tasks at the time is the calculation of missile ballistic trajectories. The software development (if it can be called software development) is different from now. In order to calculate a question, some people who have completed various types of operations such as completing and subtraction and eliminating, if they are changed, and if they change the questions, they will decompose these components to rebuild according to new requirements. Low (with now). The Architecture and the Real Calculation Model of Modern Electronic Computer From Feng. Nogan 's Thoughts. In 1946, he and his colleagues discovered the shortcomings of Egnach, published a report, put forward the procedure to put in memory, sequential implementation, so that when a new question is required to change the computer The program's "soft" method. The British scientist Wilkes realized von. Noyman's thoughts, leaders developed "Aksak", which is technically better than Ezik. Therefore, the current computer is often referred to as von. Nogan computer. The history of software development has also officially begun. Early programmers use machine language to program operations; with the emergence of compilation technology, people have designed many higher-level languages; these languages get rid of the cumbersome details of machine language, closer to people's natural language, quickly spread Come. According to statistics, there are thousands of high-level languages around the world, but from a computable perspective, their computational power is equivalent to the map. It has been proven that a computer language, as long as it is except for assigning statements, it also includes sequential statements, conditional statements, and loop statements, which are equivalent to the map forever. Here, it is of course to exclude the effects of other technical factors, such as program length, number of variables, data accuracy, etc. Since the idea of the map is to convert the problem into a step-by-step mechanical solution process, various computer languages are just some form language, so the process of software development is essentially the programmer's domain problem Formal process. The programmers first build a model (formal), and then use the computer language to properly express, and finally enter the computer. 2 From the PO (oriented) to oo (object-oriented) discussion from the previous section we know: The process of software development is the process of maping people's real world (problem domain) to the computer world in various computer languages; As shown below: Real world issues → Establish models (with certain modeling ideas) → programming implementation (with some kind of programming language) → Computer World Executive Solving Solving We review the history of advanced languages first. The earliest senior language was born in 1945, it was a German Chu translated Plan Calcul designed for his Z-4 computer, which is more than a month earlier than the first electronic computer; the first advanced language implemented on the electronic computer. It is the SHORT code developed in the United States in 1952; it is really popular, and the first high-level language that is still popular is in the US computer scientist Bacos design, and first in IBM in 1956 FORTRAN language implemented on a computer. Early high-level language is mainly used in science and engineering calculations, representing Fortran and Algol60. After the computer enters the business and administrative management, Cobol and RPG have the language used to facilitate business use.
In recent years, such language and database technology, graphical interface technology (visual programming), the concept of object-oriented ideas and RAD (Rapid Application Devolopment) combined, forming a more convenient use of the so-called fourth-generation language (4GL) Such as PowerBuilder, Delphi, VB, etc. The previous types of large languages applied to science and engineering are relatively found, and they are also more flexible, and the scope of application is wider. After Fortran, Basic (learning), since the 1970s, the module features more obvious, easy to use, strong PASCAL heroic protrusions, wide popular worldwide. However, after the 1980s, its status gradually replaced more practical C language. By now, the status of the C language is equivalent to a "advanced assembly language". In the late 1980s, the object-oriented language has begun to surface, C has established a boss of object-oriented language with a huge programmer team using C language. Thus OO's thoughts are officially ruled throughout the software development world. The popularity of C even makes the US military began to support the ADA language that has been supported by the US military has not been promoted to the dead belly. After the 1990s, the computer world has changed the change in the sky. The original stand-alone platform allows the Web, "Network is computer", and the new language is not only OO, Visual, and is based on Web. Java language borrows Internet's Dongfeng, arrogant, red all over the world, the change is fast. These changes, the surface is different programming tools in the city head to change the king flag, but the back of its reflection is a more profound understanding, that is, what kind of views do you use to meet this world? In PO, the programmer analyzes the problem domain, gets a model of PO, where common words are variables, functions, processes, etc .; PO: Reality World → Flowchart (Variable, Function) → PO Language → Execute Solution Oo, the programmer first gets an OO model, where common words are classes, objects, methods, messages, etc .; oo: real world → class diagram (object, method) → OO language → Execute We can see: Po is closer to the physical implementation of the computer world; OO is more in line with people's understanding habits; if it is said that the root of the software crisis is the process of people's understanding of the process (continuous repeated, gradually deepening) and von. Nogan computer realization process There is a huge gap between (order execution), then from PO to OO, this divide is gradually narrowed; OO is an idea and programming language, the entire process developed for software - from analysis to Coding - provided A complete solution. OO is the great achievement of the milestone obtained by software development, people are all applauded! As mentioned in OO, we will associate C , Smalltalk, Simula, Lenovo, USE Case, Rose, Mr Jacboson, and Rational, but few people will mention Wittgenstein. However, it is this philosopher full of legendary colors, not only the first time clearly expresses OO's thoughts, and further refers to the things after OO, and its last limits. Currently, this unpredictable era is revoking and conscientiously thinking about the thoughts of this first, maybe we will make us more awake, and more clearly in front of the road.