定性、效率性、可用性等等)越来越高,所以导致以前很简单的系统现在变得非常之复杂。例如大家都知道的windows系统,从win95到现在最新的vista,其安装文件从100M扩大到了4G,扩大了40倍。vista的
系统功能,界面美观性以及系统稳定程度,都是win95所无法望其项背的。在windows 95的时代,写一个vista这样的系统,其代码量和代码复杂程度是难以想象的。
系统越来越复杂,开发难度越来越大。这正是现在的这么多乱七八糟的开发方法、开发语言、开发平台出现的原因,但是这些新生的事物却远远没有达到程序员所期望的目标。
3.每天都在学习的程序员
每天,我们程序员都会在专业杂志上看到一个新的概念,一种新的语言,一个新的软件开发的研究成果。我们已经不胜其烦,疲于奔命,只要有几个月的时间我们偷懒而不去
学习的话,我们就会沮丧的发现,自己已经远远的落后于时代了。而更可悲的是,我们费尽精力去学完了一新知识的时候却发现我们实际能够应用这种知识的时间要比学习这种知识的时间要少得多,而最大的收获却是在和同行们吹牛的时候能够吸引到别人的眼球。
软件行业是一个高复杂性、高逻辑性和高创新性的行业,我们
程序员则毫无疑问的是世界上最聪明,最好学,同时也是工作得最累的人。经常可以看见,程序员加班加点的开发软件赶进度,疲于奔命的调试程序来解决程序BUG,没日没夜的进行系统升级与割接。同时,每天还得不断的学习
各种新的知识,进行自我充电。
4.和其它行业相比的
软件业
这是一个很奇怪的现象,在现代化的工业社会,除了软件行业以外的各行各业大都有自己非常成熟的行业标准。和这些行业相比,软件行业的发展是太过于迅速还是太过于缓慢呢?一方面,软件行业的天才牛人层出不穷,各种新知识新概念新技术新语言爆炸式的增长,软件的体积越来越膨大,功能越来越强大。从这方面看,软件业的发展确实是太过于迅速了。但是,从另外一方面看,这些新知识,新技术,新语言的快速出现,快速发展,却没有根本的解决编程复杂化的问题,都是一个一个的解决
问题,并没有实质性的变革。我们发现,编程还是越来越复杂,系统bug越来越多,而且还只能是发现一个解决一个。一个能够得到广泛认可的工业化标准一直都无法出现。
5.下一代的软件业发展方向,向工业化进军?
我们也在幻想,什么时候编程能够像搭建积木一样的,用各种零件,可以搭成飞机,楼房等等。就像是工业化的生成汽车,飞机一样的,在设计好以后,像生产线一样的,将各类的零件搭建在一起,组成各种组件,然后再将这些组件组合起来,就生产出了一个汽车和飞机,不再需要每个零件都单独进行制造,零件接口都单独进行
设计。
也许很多人会认为,这和软件的灵活性是相冲突的,一个软件如果这样进行开发,必然会使其效率降低,功能不灵活。然而,历史上的任何一种工业技术都出现过类似的问题,1765年,英国人瓦特发明了蒸汽机,但是在当时,这个工业化的始祖机器并没有得到任何的实际应用,其原因就是这个蒸汽机在效率、功率和稳定性上遇到了非常多的技术性的难题,面对嘲笑和讽刺,瓦特并没有放弃,而这些问题,最终都得到了完善的解决。所以说,我们可以这样认为,效率性和灵活性都只是简单而暂时的技术性问题,都可以得到完善的解决。
下一代的软件开发应该是怎么样的呢?通用接口(SOA),可复用模块(居于构件理论),从设计到开发快速成型…… 这肯定不会是一个简单而短时间内就能达到的目标,但是终究会实现的。
也许,到时候,软件开发会变成这样子:底层构件(或者说是中间件或者组件)开发者开发底层的构件;系统架构师设计整个系统的架构;然后二次