《程序员》百期文章回顾之13——软件开发2.0时代来临

《程序员》官方博客:http://blog.csdn.net/programmer_editor








随着中国软件开发2.0技术大会的临近,我们看到今天的软件开发正在迈进一个新的时代。

        从拨开关进行编程的时代开始,软件开发经历了一次又一次的蜕变。而最近的这一次蜕变,与以往都不相同,它是软件开发一次最激动人心的Release版本,在这个软件开发的新版本中,主要的变化包括以下方面:

● 互联网和Web应用技术换代

● 企业软件社会化的革新

● 软件开发的底层环境改变

● 软件开发的语言与工具变化

        我们分别把这些内容分类为4个领域的2.0,他们分别是Web2.0、企业2.0、计算2.0以及语言工具2.0。

Web开发这个领域,近年来几乎已经成为开发者社区最抢眼的热点话题。除了一系列新的软件开发工具、语言的出现之外,新的应用模式和Web应用技术被广为
流传,我们第一次感受到开发者社区会怀着这样巨大的热情来讨论、分析与共享他们的知识。是的,这正是Web
2.0的核心要义所在,知识的分享与传播,病毒式的传播链以及以人为核心的微内容组织方式……Blog、Wiki让每一个人都能成为媒体传播链的一部
分,       
AJAX、SilverLight等技术让更多用户体验到更酷的页面浏览,Mash-up、RSS聚合等技术不仅让普通人可以随心所欲地使用互联网,更能
让他们轻易获取自己想要的信息。这一切都伴随着Web 2.0的到来而让程序员们为此热血沸腾。

        可以说Web 2.0掀开了软件开发2.0革命的篇章。在Web
1.0时代,大集中模式的门户网站,搜索引擎让每一个用户都需要主动从Web页上“拉”下许多内容来消化。这些信息固化在呆板的HTML页面上,用户与用
户、用户与内容提供者之间的交互几乎没有。然而,这并不意味着人们没有这样的需求。记得在1996年,能够写几行ASP代码的程序员,享受着今天任何领域
的开发者都无法想象的物质条件,同时他们还被顶礼膜拜,享受精神上的满足感。今天,这些需求被大量释放出来,各种技术充分满足了人们交流的渴望。信息,则
开始随着RSS Feeds的新模式在光纤中奔腾。

       
未被发掘出来的用户需求像一只无形的大手牵引着互联网发展。比如在用户体验领域,前端脚本语言的竞争已经发展到了白热化程度。从VBScript到
JavaScript,从ActionScript到XAML,互联网用户的感官通过浏览器得到了前所未有的满足。然而这些还不够,Flash、
SilverLight等前端技术几乎要将整个客户端丰富的表现力都集中在小小的浏览器中。

        然而,Web的影响还不止于此,它的出现深深影响着软件。

        当企业看到Web
2.0极为有效的信息交流和沟通方式时,纷纷开始蠢蠢欲动。从知识工作者本身所做的工作来看,每个人都在自己的领域内寻找专家,而新的Web
2.0方式给了他们一个这样的机会。我们可以通过一个Blog找到领域专家,并请他/她来帮助我们解决麻烦的业务问题;我们也可以通过企业Wiki来完成
一套特有的企业业务知识库。这些工作,采用传统的方式不知要消耗多少企业资源才能完成,而今天,人们只要下载一套开放源代码的软件,就可以轻易达成。
IBM、BEA、Oracle、SAP、Red
Hat等重量器的企业相继发布了社会化计算的产品,不得不说这些新的应用形式已经代表了未来企业计算的趋势。

        此外,互联网还给今天的企业重新构造了一套价值链。程序员通过SOA的方式,可以开发出以Web
Service形式暴露接口的企业应用服务,而这一套思想反馈给Web则形成了整个Web
2.0的底层基础技术平台。任何企业,只要在社会化的价值链中找到自己的定位,就可以快速找到上下游的企业应用服务,从而进一步将商业模式变得更加清晰。

       
在新定义的商业模式(如SaaS)下,同时催生了一大批软件和Web服务运营商,Amazon、WebEx、Salesforce、阿里软件等一批具备较
强运营能力的互联网服务公司在新环境下快速成长起来,他们借助互联网强大的链接功能,让整个世界变得更平,让那些长尾的需求得到真正满足。

       
互联网爆炸式的规模增长不但造就了众多成功的企业,同时也拉动了底层计算平台的需求。大规模互联网站所需要的计算能力正在以级数方式递增,大型分布式计算
的需求也就此拉开帷幕。为了满足这种条件,硬件厂商首当其冲地推出了通用平台上的多核计算技术。AMD与Intel你方唱罢我登场,多核架构与更多的内核
成为业界的热门话题。

       
当然,随之而来的,就是大规模的并行计算需求。采用C++进行并行编程、Java的并发包又重新唤起了这些看似即将老去的编程语言新活力。此
外,Google的Map Reduce技术、Erlang平台等一批新的软件技术被顶礼膜拜。包括IBM软件集团大中华区总经理Bete
Demeke、英特尔副总裁兼亚太研发集团总经理的王文汉博士等众多企业高层都表示,我们正在经历一场软件技术与企业业务同时爆发的革命。

        当然,多样化的计算环境同样也接收到了2.0的信号。GPU计算、移动计算等技术的快速发展,已经不再是实验室襁褓中的婴儿,它们已经开始创造大量的社会价值。这些计算环境的改变,不得不说是信息时代发展的又一个高峰。

       
最让开发人员关心的问题直接与他们相关。动态的社会化网络,不仅仅带来了使用Internet的变革,同样它也让那些新的编程语言重新崭露头角。今
天,Ruby on
Rails的开发人员已经成为炙手可热的高科技人才,而Python、Perl等几乎遗留在历史遗迹当中的编程语言重新登上软件开发的历史舞台。多种多样
的技术百花齐放,让你不由得承认这是一个新的盛世。

       
重量级的软件工程方法收紧了步伐,以敏捷开发为代表的轻量级软件工程方法被新新人类们奉若圣经。Web时代下,快速将产品与服务推向市场成了第一要务。即
使是在Java这种面向企业的重量级平台和语言当中,也在不断被轻量级思想渗透——EJB被Spring +
Hibernate取而代之,Java的开发变得越来越敏捷。

        在这样一个剧烈变化的时代,摆在每一个程序员面前的是更多选择、更多机会。开放的新环境让我们能够更快地去掌握那些新的技术和知识,唯一需要每一个人努力的,就是创新。因为软件开发2.0时代已经来临。


 


 


转自:http://news.csdn.net/n/20090306/123875.html