计算机软件发展趋势的估计
2014-05-19杨爽
杨爽
摘 要:计算机已经成为一种日常生活不可缺少的工具,在人们的生产生活的各个领域发挥越来越重要的作用。计算机通过其应用软件为人们提供服务,计算机软件的发展很大程度上扩大了计算机的应用。现在社会需要的软件功能也越来越大,怎么样开发功能强大的软件,怎么样降低软件的开发成本是一个比较重要的问题,作者对软件的现状和趋势做了一些研究,继而对计算机软件的发展趋势提出了自己的一些看法。
关键词:软件;模块;发展趋势;看法
现在计算机软件高度集成,开发出来的软件规模越来越大。当然可以帮助人们解决更为困难的问题和工作。按理说,复杂的工作需要复杂的工作量,那么对于一个程序员来说要求是越来越高的,可是现实是怎么样的呢,其实现实是程序员的工作越来越简单化!为什么出现这么一种复杂的问题能够更容易的去解决的现象呢?
其根本在于计算机软件的高度发展,它的发展使得现在开发程序可以模块化,说白了就是现在你开发一个软件不再需要从底层做起,你要做的就像拼积木。拼积木是小孩的游戏,那么现在社会的程序就是成人化的游戏而已。比如一个要解决的现实问题我们可以想象为一个要搭建的巨大建筑,那么在这个建筑的建造工程中,有人给你提供了建筑这个建筑物所需要的模块,你只需要根据自己的要求拼接便可以。你并不需要开发很细节性的应用实现,这样你便可以减轻自己的开发难度。在减轻你自己工作量的同时,现实中很多人也给你提供了一些很实用的框架结构,这样你甚至可以不用思考如何搭建你的系统架构,你要做的仅仅是根据需要选择一种好的架构方式然后把自己需要的模块填充进去就可以了。如此简单的说出现在程序的本质,很多程序员觉得自己是不是太没有价值了,其实也不然,因为现在社会的问题过于庞大你也不可能一个人完成一个系统需要的所有工作。所以程序员的价值就是我在利用别人的工作成果的同时也在给别人提供一个可用的模块。这应该是现在软件发展的方向,每个人也应该为此而努力。
那么计算机的软件是从什么时候开始发展成这样一种模式的呢,说到计算机的软件不能不说起计算机的操作系统OS,在计算机发展之初,计算机所做的各种指令只能是机器语言,那么机器语言都是01代码。这样一个现代程序的机器代码如果让人看明白,其可能性几乎为零。也就是说一个电脑裸机,提供给人们的是机器接口,人们使用它们必须编写出机器能识别的代码。虽然现在计算机业是要实现这个目的,但是现在计算机程序面向的却是计算机的操作系统。操作系统对计算机机器做了抽象封装,让人们觉得安装了操作系统的计算机是一台比较人性化的,方便和人进行交流的机器。那么这个封装的功能促进了计算机软件的飞速发展,并使人们发展越来越强大的软件成为可能。比如你开发一个计算机应用系统,这个系统的登录模块你可以不用自己去做,别人做好了这个模块并提供相应的接口,你便可以使用这个模块对输入的数据进行验证了,输入模块根据你输入的情况给出对应的结果。但是这个验证模块是不是就自己实现了对数据库的访问了吗?不一定,它同样也可以使调用别人的模块去实现,其实我们在实际中开发用的数据库也给我们提供了一个定义良好的接口只要传入相应的SQL语句它便给你对应的结果。从这个角度讲,整个数据库系统也应该是你自己的软件的构成模块,是不是应该很有成就感呢,因为如果你调用了SQLServer数据库不是相当于MicroSoft在为你打工吗?
上面简单讨论了计算机底层上的封装,即os对硬件的封装,如此便开始了一个后续无穷的封装链。从上面的内容可以看出计算机软件封装的一个好处就是实现了计算机软件的快速开发,提高了软件的开发速度。另一方面就是计算机的模块化运行可以在很大程度上减轻程序员的工作量,当然此处不是指代码量的多少,而是指相关知识的提取,因为一旦了解了一门课程的相关知识以后代码的工作便不会是过于复杂的过程。比如独立写一个计算机间通讯的程序,那么最大的工作量首先是你要弄明白计算机之间通信的各种协议,然后开始写代码。那么这个工作的很大一部分便是你先去查看计算机网络相关知识,但是现实中你开发的时候却有很多部件(或许不很准确,在面向对象语言中它叫类)已经是别人写好的可以供您使用,以此你便不需要去查看大量的枯燥的理论知识了,直接根据别人的接口便很快写出一个很有成就感的应用系统了。不是吗,当别人在用QQ聊的不亦乐乎的同时,你却可以让你的一些朋友使用你自己开发的一个聊天工具,这可能比聊天更不亦乐乎。但是切记是现代软件的发展模式帮了你很大的忙。如果没有他们我们用的聊天工具可能没有那么强大,如果没有他们我们可能很难再计算机软件方面有所成就。
然而我们在使用别的大公司生产的各种模块的同时,却没有想着自己也应该为软件的发展做出点什么,回归我们上面的论题,我们做出来的软件模块如果也能为别人所使用的话那么这将能极大的缩短别人的开发时间,前提是都作出健康的软件来,所以应该有一种专门的第三方机构能站出来,每个程序员或者公司在自己的模块构造完成之后提交给这个第三方,第三方综合评鉴了该模块后提供给别人下载使用,这样的机构或许应该以现在的各种开源机构为基础而发展起来,如此在不远的将来程序员将不再去搭建应用软件,只负责功能模块的开发,而把功能模块的搭建交给公司的内部业务精英去完成,企业的业务精英根据自己的要求去这个第三方平台或者付费或者免费的去下载所需要的模块,如此应该能极大的促进软件的发展和降低系统的开发成本及提高开发速度。
如果这个第三方平台搭建成功以后可以给别人提供模块的方式也是多种多样的, 除了传统的程序模块下载之外还可以使用WebService。前者可能搭建的系统还会占用一定的本地资源,而如果完全采用WebService之后就有可能是的一个软件所占用的本地资源为最小。若干年后人们发布的软件将不再是传统意义上的软件,或者仅仅是一个布局或者部署文件,也或者个这个部署功能也有了专门的提供机构了完成,你只需要提供自己的部署编号便可以得到你需要的软件系统。