The constant and changes in software technology within 30 years
2003.9 (all copyright reservations)
Changes in software technology and related issues are a small part of the invention innovation, the company's product operation, social market demand consumption, talent fund circulation, policy law, etc., the development process will be affected by many factors, but it is also There is a certain law. As a person in the industry, in the face of this technological sun-changing industry, ponder the industry's future 30 years.
Thoughts after 30 years don't have to be considered, it is useless to be clear.
Software technology and related issues within 30 years may be large and varied. Learning a lot of change, it will use familiarity, and the changes must be given to the depth in time.
First, the change is not big
1. Intel X86 instruction set
The reason is very simple, and if these instruction sets have changed, the industry has developed and accumulated software could not run, and the change cost is too high.
Even from 32 bits develop to 64-bit, 128-bit, the compatibility of the instruction set is foreseen.
2. Operating system - startup process
System power supply reset, hardware self-test, operating system boot, memory management, process management, hardware interrupt processing, other parts of the operating system, the user shell boot, etc. This set of processes should not change.
3. Operating system - memory management
The three-layer memory management model of i386 does not see how much change trends. The memory management mode of the operating system, the API does not change much.
4. Operating system - process (thread) and its scheduling
As long as the operation of the program within the operating system is scheduling through the clock interrupt or other software and hardware interrupt, the process is the basic unit of operating system scheduling. If "independent binary components" starts from a certain day become the basic scheduling unit of the operating system, it may be more of the process control block changes. The loading itself of "independent binary components" is probably the process.
5. Operating System - File System API
File systems may constantly change, but the API of the file system should not change.
6. Database - SQL language
The theoretical and product technology of the relational database is very mature, and the SQL language is difficult to be replaced for maintenance to the currently saved, and XML may cooperate with SQL instead of replacement. Even if the object database theory and product are mature, SQL will definitely be compatible.
7. Protocol and format of web browsing - HTTP, HTML, JavaScript
Even if you are not satisfied with HTML, its modifications, the pace of progress is not very fast, too many information is stored in this format, and the cost of change is too high.
HTTP is accompanied by HTML, and the change will not be too large. This is even more likely to JavaScript.
8. Protocol and format of email - POP3, SMTP, MIME
POP3, SMTP, MIME has also been large, and the cost of change is high.
9. Network Agreement - TCP / IP
IPv4 to IPv6 can be seen, but the basic structure of TCP / IP and the API should not change much. The cost of change is too high.
10. Microsoft's Windows - Windows
Unless there is a significant business failure, Microsoft will not fall back, and this is mainly related to technology, not much. Simple thinking that Windows will have a long time.
Windows in Windows (Windows Technology) is the essence, which is already mature, its associated API, including GDI, message mechanism, and Common controls, etc. will not have much change. Even if there is a component, it is just another form of the API.
11. Microsoft Windows - DirectX
As long as the people are still using Windows, DirectX will continue to maintain it as a game's development platform.
12. Open source organization and IBM Linux - Shell, Xwindow
Open Source Organization now can't see any foreground decline, IBM has developed for a hundred years, and they jointly driven Linux for 30 years should have no problem. Its basic shell and xwindow structure will not change much. 13. OOP syntax and ideas
The programming language is a tool for writing logic, calling API, and solving problems. The OOP syntax is now in the ascending, guiding the compiler, the virtual machine, and the API shifts. After several years, even if the programming language has developed a revolution, OOP is likely to be the foundation.
14. Algorithm
It can be said to be part of mathematics, including pure mathematical algorithms and application business logic or application algorithms. The vitality of the problem-solving algorithm is forever, independent of the system, programming language. Even if we don't study new algorithms, you can master some algorithms, which is the long-term competitiveness of basic software development knowledge.
Second, the change is relatively large and the influence is relatively large
1. Product appearance, user operation interface and interactive mode
The appearance of the product, the change in the interface and interaction is never end. Companies like Microsoft put into great energy in this regard. In fact, this is to see the people, not for developers, but to a large extent, it will affect the product design, interface design and interaction design of developers.
2. Programming language, compiler and its support library, virtual machine
The selection of specific programming languages and compilation tools is the programmer, the development department's own internal transaction, generally independent of system API, product market demand, development results. There are very many factors that affect the selection of programming languages and compilation tools, which is large. Even if a programming language or its related compilation tool is very long, it is difficult to ensure that it is fixed by a development team for a long time. Excessive inverting is limited to a large risk of compilation tools, but it is difficult to make a good thing without drilling.
3. Development management mode
Different products, projects, different application platforms, different programming languages, require targeted development management models. Even with the same OOP grammar programming language, it is also different for different products or compilation tools. The development management is actually the process of organizing developers using programming language to write results, and must of course constantly adjust. There are some of the management theories of thick lines that can only be guided, and real practices are another matter.
4. Application requirements for development technology
With the software application platform manufacturers, development tool manufacturers' continuous product upgrade, marketing activities, and constant changes in social consumption, market customers are constantly adjusting the demand for development technology.