文章回顾了软件开发方法的范式演进,将之大致划分为三个大的阶段。首先从基于机器指令编程发展到使用计算机高级语言编程,这隔离了指令集的差异,使得面向过程编程得到广泛应用。然后随着软件规模的膨胀,为提高数据的封装性和代码的简洁...文章回顾了软件开发方法的范式演进,将之大致划分为三个大的阶段。首先从基于机器指令编程发展到使用计算机高级语言编程,这隔离了指令集的差异,使得面向过程编程得到广泛应用。然后随着软件规模的膨胀,为提高数据的封装性和代码的简洁性,发展了基于对象和面向对象编程,而对不同对象的共同属性进行操作,就称之为面向概念编程,这可协调封装性和灵活性的矛盾。为消除编程语言之间的差异,程序设计中大量采用二进制层面的面向对象编程,即面向组件编程,如果软件的组件可在运行时灵活替换,软件运行环境也从单机状态扩展到整个互联网,则称之为组件市场编程。进入人工智能时代,大型语言模型也将迅速应用于软件开发领域,编程助手可将人类自然语言翻译为程序代码,编程将从面向程序语言转为基于自然语言,隔离了编程语言的差异,使每个人都可成为程序员。编程助手智能化程度提高后就成为数字员工,将进入计算机自主进化编程阶段。程序员还可训练出“数字替身”,让软件开发更为轻松惬意。This paper reviews the paradigm evolution of software development methods, which can be roughly divided into three major stages. Firstly, the development from machine instruction based programming to programming using advanced computer languages has isolated the differences in instruction sets, making procedural programming widely used. Secondly, with the expansion of software scale, in order to improve data encapsulation and code simplicity, object-based and object-oriented programming have been developed. Operating on the common properties of different objects is called concept-oriented programming, which can reconcile the contradiction between encapsulation and flexibility. Lastly, in order to eliminate the differences between programming languages, binary level object-oriented programming is widely used in program design, which can be called component oriented programming. If the software components can be flexibly replaced at runtime, and the software running environment extends from the stand-alone state to the entire Internet, it can be called component market programming. Entering the era of artificial intelligence, large language models will also be rapidly applied in the field of software development. Programming copilots can translate human natural languages into program codes, and programming will change from programming languages oriented to natural languages based, isolating the differences between programming languages and enabling anyone to become a programmer. After the intelligence level of programming copilots improves, they will become digital employees and enter the stage of computer autonomous evolution programming. Programmers can also train “digital avatars” to make software development easier and more enjoyable.展开更多
文摘文章回顾了软件开发方法的范式演进,将之大致划分为三个大的阶段。首先从基于机器指令编程发展到使用计算机高级语言编程,这隔离了指令集的差异,使得面向过程编程得到广泛应用。然后随着软件规模的膨胀,为提高数据的封装性和代码的简洁性,发展了基于对象和面向对象编程,而对不同对象的共同属性进行操作,就称之为面向概念编程,这可协调封装性和灵活性的矛盾。为消除编程语言之间的差异,程序设计中大量采用二进制层面的面向对象编程,即面向组件编程,如果软件的组件可在运行时灵活替换,软件运行环境也从单机状态扩展到整个互联网,则称之为组件市场编程。进入人工智能时代,大型语言模型也将迅速应用于软件开发领域,编程助手可将人类自然语言翻译为程序代码,编程将从面向程序语言转为基于自然语言,隔离了编程语言的差异,使每个人都可成为程序员。编程助手智能化程度提高后就成为数字员工,将进入计算机自主进化编程阶段。程序员还可训练出“数字替身”,让软件开发更为轻松惬意。This paper reviews the paradigm evolution of software development methods, which can be roughly divided into three major stages. Firstly, the development from machine instruction based programming to programming using advanced computer languages has isolated the differences in instruction sets, making procedural programming widely used. Secondly, with the expansion of software scale, in order to improve data encapsulation and code simplicity, object-based and object-oriented programming have been developed. Operating on the common properties of different objects is called concept-oriented programming, which can reconcile the contradiction between encapsulation and flexibility. Lastly, in order to eliminate the differences between programming languages, binary level object-oriented programming is widely used in program design, which can be called component oriented programming. If the software components can be flexibly replaced at runtime, and the software running environment extends from the stand-alone state to the entire Internet, it can be called component market programming. Entering the era of artificial intelligence, large language models will also be rapidly applied in the field of software development. Programming copilots can translate human natural languages into program codes, and programming will change from programming languages oriented to natural languages based, isolating the differences between programming languages and enabling anyone to become a programmer. After the intelligence level of programming copilots improves, they will become digital employees and enter the stage of computer autonomous evolution programming. Programmers can also train “digital avatars” to make software development easier and more enjoyable.
基金Supported by the National Natural Science Foundation of China under Grant No.60173013 (国家自然科学基金) the Natural Science Foundation of Beijing City of China under Grant No.4982002 (北京市自然科学基金) the Assisting Project of Ministry of Educ