What will it be after OO?
According to the 5-5-5 Rules of technology from concept to prototype to product, object-oriented technology is now mature, and it is time to consider what oo will be. In this period when new technology standards have not yet emerged, everyone has the right to think. The following is my thoughts on Oo.
What is it after OO? I think it is fo -- function oriented (function-oriented ). The function here is different from the function we use in the current programming. The function here refers to the function module. The so-called functional module refers to the ability to independently complete a specific task, and for tasks that cannot be completed, you can find other functional modules that have the function of completing the task on your own, and establish contact with it to work together to complete the function body.
Before explaining my reasons, let's take a look at what we 've experienced. We first went through the po-oriented process, and then the oo-object-oriented process. Why is this process? Because it is a process that becomes more and more abstract from the specific. In order to solve the problem more easily, people always want to abstract the problem and solve the problem as much as possible. being too specific may make people feel very painful. In the process of orientation, our method is "what to do first, what to do, and what to do at last". This is like a method for an adult to do things. He knows what to do in each step, it follows that step. In object orientation, our method is "no matter how the object is implemented, we only need to know what it can do and how to let it do it". This is like a child's way of doing things, he doesn't know how it came from. He only knows what it can be used to do and what it can be used to do what it wants. How does the bench work? It can be used for sitting! How does a younger child do it? They even don't know how to sit on the bench. Very simple. "Mommy, I want ......" What does his mother do or who needs help? Mom will do everything well, and she is omnipotent.
Let's take a look at our industrial production. At the beginning, it was a hands-on workshop. One person started from the beginning and completed the work step by step, just like op. Then there is a machine-based production, where each machine creates different parts and then assembles them into one piece. The machine-based parts only know the role of one part separately, but I don't know whether it is used on a bicycle or on an airplane. If it is assembled, I don't need to know where the parts come from or who made them. This is like oo. What is the current model? The company receives the business and then entrusts the business to others. It needs legal counsel to ask lawyers in the lawyer's building. It needs planning and public relations companies. It needs advertisement and advertising companies; find a specialized manufacturing company for production. What your company needs to do is to receive the business, do what your company can do, and hand over the work that cannot do and do less efficiently to the specialized company.
The functional module is "Mom", which is the current company. It does what it can do. If it cannot do it, it knows that it can find a module capable of this task and work with it to complete the work. The customer submits the problem to the software engineer, who completes the program including function module A and submits it to the customer. The customer uses this program to solve the problem. Module A automatically searches for the parts that can be completed and the parts that cannot be completed, b, C, and D can search for e, f, g, h ...... Level 1 feedback is returned to a, and a assembles the result and submits it to the customer.
The above is the fo after the introduction of OO in other fields. So what does it support in our computer field? As you know, there are three formulas for programs in the computer field:
1. program = Data Structure + Algorithm
2. program = logic + Control
3. program = {object 1, object 2 ,......, Object n} object = Data Structure + Method
The first formula was put forward in the fo age, and the third one was put forward in the OO age. We can see the similarity between the definition of objects in the third formula and the definition of programs in the first formula. In fact, the object is indeed very similar to the previous program. What it lacks is the control structure of the program. Therefore, both framework programming and control programming require programmers to complete the control structure. Now we can imagine what to do next when data structures and methods are combined to produce objects? Of course, control is integrated. This is our functional module, which combines controlled, automatic, and intelligent modules.
As you know, Microsoft recently announced its ". Net" plan. In the future, its products will implement basic functions on the local machine, and higher-end functions will be requested by the program to the Microsoft Server and completed by the server. Although this is a request from the client software to a fixed address, it is not completed by the module itself and lacks intelligence, but we can still regard it as a very primitive and primitive prototype of Fo.
What do I need to implement fo? High-speed smart networks, smart interfaces, distributed technology, and parallel technology are required. The most important thing is to have an international management organization.
Why? Obviously, the function-oriented architecture is based on the global Internet, which must use distributed technology. As you know, the biggest problem with distributed technology is the transmission of a large amount of information on the network, which requires a high-speed internet. Information consumes time on the network, and parallel technology can be used to make up for it. Functional Modules require you to find other modules that can help you complete tasks. The current network cannot do this, which requires an intelligent network. When other modules need to cooperate with module A, the module searcher needs to propose the requirement and send the message to the module searcher on the network. The module searcher will find one or more modules with the required functions, module A needs to find Module B that best meets its requirements, and send the information required by Module B according to its interface requirements. At the same time, Module B must be able to describe its own functions well, precisely put forward your own requirements, and can extract the information you need from the messages sent by a, which requires the Intelligent Module to have intelligent interfaces. Standard Definition of Intelligent Modules, registration of a large number of modules, organization of module information, and coordination of module usage all require an international organization for management.
What can we do to support this? When it comes to distributed computing, we will certainly think of CORBA. In fact, the way we work with this functional module is very similar. When the module cannot complete the work, ask for help from other modules through the network. The CORBA application also sends messages to the smart agent, and then finds the corresponding CORBA object through the smart agent to complete the work. However, the interface of the CORBA object is so determined that a large amount of control work is still done by programmers. The interfaces of functional modules are vague and intelligent, and all control is done by the module itself. The search module must pass through the high-speed smart network. The high speed is no longer a problem. But smart, the den-based smart network solution proposed by Cisco makes people see the dawn of problems. The most troublesome thing is intelligent interfaces, which require extremely advanced AI technologies. Artificial neural network may be the way to solve the problem, but it is far from completely solving the problem.
When everything is done, the applications on our desktop will become so simple and similar. They have different interfaces, but they do the same thing: accept commands, contact the module searcher, and hand over all the specific work to the functional modules provided by the module supplier!
When machines can understand natural languages, the era of using languages to command computers will naturally come!
In the case of retaining the original source of the http://www.javajia.com, welcome to reprint!