进入21世纪以来,信息技术及其应用飞速发展,已经广泛覆盖并深入渗透到了社会生活的方方面面。特别地,近十年来,以云计算、大数据、移动互联网、物联网、人工智能、区块链为代表的新一代信息技术推动信息技术应用进入跨界融合的繁荣期,开始呈现出“网构化、泛在化、智能化”的新趋势,并不断催生新平台、新模式和新思维。
可以说,在某种意义上,信息技术及其深度应用已经推动人类社会步入到一个新的发展阶段。对这样一个新的发展阶段,可以从不同的视角去考察和认知。例如,从基础设施视角,可视为是以互联网为核心主干,移动网、广电网、物联网等多种网络融合形成新型泛在化基础设施,并支撑规模化跨界创新应用服务模式为特征的“互联网+”时代;从计算模式视角,可视为是以支持计算、存储、网络、数据、应用等资源的集约式管理和服务化使用为特征的云计算时代;从信息资源视角,则可视为是将数据作为新型战略资源并以数据的深度挖掘和融合应用为特征的大数据时代;从信息应用视角,则可视为是以人工智能技术为基础,支持感知、认知到决策为特征的智能化时代。
然而,如果从使能技术的视角看,软件技术在信息技术中则始终处于“灵魂”地位,所有新的信息技术应用、平台和服务模式,均离不开软件技术作为基础支撑;更为重要的是,在数字经济时代,软件技术已经成为企业的核心竞争力,不仅引领信息技术产业的变革,在很多传统领域(如汽车、能源、制造、零售等)中的存在比重和重要性也在不断加大,在支持这些传统领域产业结构升级换代甚至颠覆式创新的过程中起到核心关键作用,并进一步加速重构了全球分工体系和竞争格局。特别地,作为新一轮科技革命和产业变革的标志,德国的“工业4.0”和美国的“工业互联网”,以及我国的“制造强国战略”,均将软件技术作为发展重点。无所不在的软件,正在走出信息世界的范畴,开始深度渗透到物理世界和人类社会,全面发挥“赋能、赋值、赋智”的重要作用,甚至开始扮演着重新定义整个世界图景的重要角色。在这个意义上,我们正在进入一个“软件定义一切”的时代!
“软件定义一切”已然成为一种客观需求,并呈现快速发展态势,其主要体现形式将是软件“基础设施化”。这不仅是因为在数字经济时代,人类社会经济活动高度依赖信息基础设施,而软件是信息基础设施的重要构成成分;另一方面,软件也将“重新定义”传统物理世界基础设施和社会经济基础设施,对人类社会的运行甚至人类文明的进步将起到重要的支撑作用。在这样的时代背景下,我们该如何理解“软件定义”的技术内涵及其带来的软件“基础设施化”?“软件定义”产生的背景,现在处于什么阶段,未来又将如何发展?本文尝试作一些解读。
无所不在的软件
从1946年第一台真正意义上的通用电子计算机ENIAC诞生,计算机已经历了70余年的发展历程。软件伴随着硬件而产生,其核心目的是帮助人们更方便、更高效地使用计算机。从技术角度看,软件的发展和演化有四个基本驱动力,即,追求更具表达能力、更符合人类思维模式、易构造、易演化的软件模型;支持高效率和高质量的软件开发;充分发挥硬件资源的能力,支持高效能、高可靠和易管理的软件运行;桥接异构性,实现多个应用系统之间的互操作。
从软件制品的形态上看,软件发展大体上经历了三个阶段,即软硬一体化阶段、产品化阶段和网络化服务化阶段。当然,需要指出的是,这三个阶段尽管在时间上有先后,但并不对立,也难绝对分离,而是前后传承、交织,呈现出“包容式”的融合发展态势。
软硬一体化阶段
在计算机诞生后的相当长一段时期内,实际上并没有“软件”的概念,计算机的运行是通过用机器语言和汇编语言编写程序的方式来直接操作硬件,即只有“程序”的概念,应用则以军事领域为主。约到1950年代末1960年代初,在高级程序设计语言出现后(1957年,IBM开发了第一个高级程序设计语言Fortran),“软件”才作为与“硬件”对应的词被提出,以程序和文档融合体的形态从硬件中分离出来,成为相对独立的制品。在这个时期,软件以“高级语言程序+文档”作为主要展现形式,应用主要为科学工程计算领域和商业计算领域(如COBOL语言在****业的广泛应用)。特别值得一提的是,在计算机发展史上具有里程碑意义的大型机—IBM 360系列机中,出现了最早的和硬件系统解耦的主机操作系统—OS/360。OS/360对IBM 360系列机的推广应用起到了非常重要的作用,同时也对日后的软件技术和产业产生了很大的影响。尽管OS/360操作系统还是和IBM硬件捆绑一起销售,但人们已经开始意识到软件的重要性。也正是在这个时期,计算机作为一门专门学科开始形成并完善其学科体系,软件学科成型并得到快速发展,程序员也开始逐渐成为一个专门的职业。总体来看,在软硬一体化阶段,软件还是作为硬件的附属品存在,基本均是面向大型机/小型机设计,应用领域有限,移植性和灵活性也比较差。