`
isiqi
  • 浏览: 15947246 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

解读软件2.0思想框架 把握技术发展趋势

阅读更多

2007.09.25来自:《程序员》杂志 孟岩 共有评论(12)条 发表评论 [收藏到我的网摘]

例如,在软件设计领域,UML力图成为表达软件设计的统一语言,而更高级的软件建模工具如MDA、DSL等技术也在积极进展当中,这将根本上改变人们表达软件设计的方式;Web和SOA对于开发效率、灵活性和软件质量的诉求,恰


<nobr><strong class="kgb" onmouseover='isShowAds = false;isShowAds2 = false;isShowGg = true;InTextAds_GgLayer="_u8F6F_u4EF6";KeyGate_ads.ShowGgAds(this,"_u8F6F_u4EF6",event)' style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; CURSOR: hand; COLOR: #0000ff; PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px; TEXT-DECORATION: underline" onclick='javascript:window.open("http://pagead2.googlesyndication.com/pagead/iclk?sa=l&amp;ai=Bqo4f_mf8RqK0Oqa44gG9_pCMBPmbxi39-uHCAcCNtwGgnAEQBxgHILHzmwkoFDgAUObrxZIDYJ250IGQBaABx5aT_wOqAQoyMDAwMDA0MTIxsgENbmV3cy5jc2RuLm5ldMgBAdoBK2h0dHA6Ly9uZXdzLmNzZG4ubmV0L24vMjAwNzA5MjUvMTA5MDQ2Lmh0bWyAAgGoAwHoA7cC6ANE9QMABAAA&amp;num=7&amp;adurl=http://www.weaver.com.cn/solutions/Project.asp&amp;client=ca-pub-9553494669999741");GgKwClickStat("软件","www.weaver.com.cn","afc","2000004121");' onmouseout='isShowGg = false;InTextAds_GgLayer="_u8F6F_u4EF6"'>软件</strong></nobr>开发与人类做过的任何其他工作都不一样。其他的工作都是思维为工具,以客观世界为目标,而软件却要求人类以计算机为工具来探究我们自己的思维。一方面,人们对这样的事情还很缺乏经验,另一方面,软件的规模越来越大,应用越来越广,在现代社会中扮演的角色越来越重要,因此,我们就必须不断地加深对软件的认识,并革新软件开发的思想和实践。近五十年来,软件<nobr><strong class="kgb" onmouseover='isShowAds = false;isShowAds2 = false;isShowGg = true;InTextAds_GgLayer="_u6280_u672F";KeyGate_ads.ShowGgAds(this,"_u6280_u672F",event)' style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; CURSOR: hand; COLOR: #0000ff; PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px; TEXT-DECORATION: underline" onclick='javascript:window.open("http://pagead2.googlesyndication.com/pagead/iclk?sa=l&amp;ai=BMjTC_mf8RqK0Oqa44gG9_pCMBO2kjymlw8X6AcCNtwGgjQYQBhgGILHzmwkoFDgAUPmt7eD9_____wFgnbnQgZAFqgEKMjAwMDAwNDEyMbIBDW5ld3MuY3Nkbi5uZXTIAQHaAStodHRwOi8vbmV3cy5jc2RuLm5ldC9uLzIwMDcwOTI1LzEwOTA0Ni5odG1sqQK2jDpk4tyBPsgC3fSrA6gDAegDtwLoA0T1AwAEAAA&amp;num=6&amp;adurl=http://www.sitechsmt.com/products/BIG5/index.asp&amp;client=ca-pub-9553494669999741");GgKwClickStat("技术","www.7seastin.com","afc","2000004121");' onmouseout='isShowGg = false;InTextAds_GgLayer="_u6280_u672F"'>技术</strong></nobr>的革新每天都在进行,然而,目前的技术发展却呈现出前所未有的局面。

自2002年至今,软件技术各个领域中的演化、进步和革新越来越频繁,越来越激烈。这些新技术、新方法每一项单独去看都意义重大,都是对过去50年软件开发传统的变革甚至革命。例如,在软件设计领域,UML力图成为表达软件设计的统一语言,而更高级的软件建模工具如MDA、DSL等技术也在积极进展当中,这将根本上改变人们表达软件设计的方式;与之相对,XML正在成为纵跨数据层、逻辑层和通信层的统一数据模型,根本上改变人们表达数据的方式;用户界面技术进入到新时期,大量的三维动画效果的运用使得用户体验达到之前难以想象的水平,而RIA的出现则综合了浏览器与普通客户端应用程序的最佳特性,找到了人们长期以来梦寐以求的平衡点;各主流语言都在积极加强自身的动态性,从而使数据与代码之间的界限变得越来越模糊;移动设备和无线网络技术的发展将计算能力满布在地球的各个角落,使得分布式计算成为常态;而多核CPU的主流化也给传统的串行化程序设计时代画上了句号,其影响之巨大可谓数十年一遇。

Web正在成为唯一真正的统一软件平台,这有可能一举结束长达数十年的平台割据分裂各自为站的局面;而SOA的目标在于调整业务与<nobr><strong class="kgb" onmouseover='isShowAds = true;isShowAds2 = true;KeyGate_ads.Move(this,"","%u589E%u52A0%u60A8%u7684%20IT%20%u7CFB%u7EDF%u7684%u4E1A%u52A1%u4EF7%u503C","-100440","IT","IBM","http%3A//ibm.csdn.net/ISN_J.aspx%3Faction%3DJMP%26pointid%3D1870", event)' style="FONT-WEIGHT: normal; CURSOR: hand; COLOR: #0000ff; TEXT-DECORATION: underline" onclick='javascript:window.open("http://s4.17luntan.com/ClickPortal/WebClick.aspx?id=-100440&amp;k=IT&amp;siteid=0098295a-e262-40f7-ae50-7a6fbbdb678b&amp;url=http%3A//news.csdn.net/n/20070925/109046.html&amp;gourl=http%3A//ibm.csdn.net/ISN_J.aspx%3Faction%3DJMP%26pointid%3D1870&amp;parm=823D51AC3432694FBF74771A66059412D8DE61D30822729E&amp;alliedsiteid=0");' onmouseout="isShowAds = false;isShowAds2 = false">IT</strong></nobr>的关系,承诺让IT与业务齐合,实现灵活应变的业务,这更是<nobr><strong class="kgb" onmouseover='isShowAds = false;isShowAds2 = false;isShowGg = true;InTextAds_GgLayer="_u4F01_u4E1A";KeyGate_ads.ShowGgAds(this,"_u4F01_u4E1A",event)' style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; CURSOR: hand; COLOR: #0000ff; PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px; TEXT-DECORATION: underline" onclick='javascript:window.open("http://pagead2.googlesyndication.com/pagead/iclk?sa=l&amp;ai=Bqo4f_mf8RqK0Oqa44gG9_pCMBPmbxi39-uHCAcCNtwGgnAEQBxgHILHzmwkoFDgAUObrxZIDYJ250IGQBaABx5aT_wOqAQoyMDAwMDA0MTIxsgENbmV3cy5jc2RuLm5ldMgBAdoBK2h0dHA6Ly9uZXdzLmNzZG4ubmV0L24vMjAwNzA5MjUvMTA5MDQ2Lmh0bWyAAgGoAwHoA7cC6ANE9QMABAAA&amp;num=7&amp;adurl=http://www.weaver.com.cn/solutions/Project.asp&amp;client=ca-pub-9553494669999741");GgKwClickStat("企业","www.weaver.com.cn","afc","2000004121");' onmouseout='isShowGg = false;InTextAds_GgLayer="_u4F01_u4E1A"'>企业</strong></nobr>IT领域里的一个根本性变革;在基础计算环境领域,多核与超大规模<nobr><strong class="kgb" onmouseover='isShowAds = true;isShowAds2 = true;KeyGate_ads.Move(this,"","%u5FAE%u8F6F%u670D%u52A1%u5668%u7AEF%u4EA7%u54C1%u5927%u5168%uFF0C%u70B9%u51FB%u83B7%u5F97%u3002","20845","服务器","%u670D%u52A1%u5668","http%3A//go.microsoft.com/%3Flinkid%3D6331218", event)' style="FONT-WEIGHT: normal; CURSOR: hand; COLOR: #0000ff; TEXT-DECORATION: underline" onclick='javascript:window.open("http://s4.17luntan.com/ClickPortal/WebClick.aspx?id=20845&amp;k=%u670D%u52A1%u5668&amp;siteid=0098295a-e262-40f7-ae50-7a6fbbdb678b&amp;url=http%3A//news.csdn.net/n/20070925/109046.html&amp;gourl=http%3A//go.microsoft.com/%3Flinkid%3D6331218&amp;parm=823D51AC3432694FBF74771A66059412D8DE61D30822729E&amp;alliedsiteid=0");' onmouseout="isShowAds = false;isShowAds2 = false">服务器</strong></nobr>集群的出现,使得对于并行计算的要求变得空前迫切,从而也直接地将函数式编程语言从实验室推向前台,并且进而要求硬件和网络基础设施的重大变革。这么多重大的技术变革竟然在几乎同时发生,自1960年代以来还是第一次。

然而更有趣的是,稍微深入地研究之后我们发现,所有这些看上去分散的、孤立的技术变革,事实上确实互相密切关联着。Web正在成为统一的、面向<nobr><strong class="kgb" onmouseover='isShowAds = true;isShowAds2 = true;KeyGate_ads.Move(this,"http://rad.17luntan.com/UploadImage/73/633239070743437500.jpg","%u4E0A%u95E8%u7EF4%u4FEE%u7535%u8111%uFF01%u7F51%u7EDC%u5E03%u7EBF%u3001%u6570%u636E%u6062%u590D%u3001%u7535%u8111%u9500%u552E%u3001%u7535%u8111%u7EC4%u88C5%u7B49%uFF0C%u8BE6%u60C5%u8BF7%u70B9%u51FB%u5782%u8BE2%uFF01","64644","服务","%u7535%u8111%u7EF4%u4FEE","http%3A//www.dfpchome.com", event)' style="FONT-WEIGHT: normal; CURSOR: hand; COLOR: #0000ff; TEXT-DECORATION: underline" onclick='javascript:window.open("http://s4.17luntan.com/ClickPortal/WebClick.aspx?id=64644&amp;k=%u670D%u52A1&amp;siteid=0098295a-e262-40f7-ae50-7a6fbbdb678b&amp;url=http%3A//news.csdn.net/n/20070925/109046.html&amp;gourl=http%3A//www.dfpchome.com&amp;parm=823D51AC3432694FBF74771A66059412D8DE61D30822729E&amp;alliedsiteid=0");' onmouseout="isShowAds = false;isShowAds2 = false">服务</strong></nobr>的分布式计算平台,从而为在企业内和企业间实施SOA建立了基础设施。数据模型向XML的统一,不但将Web更好地整合起来,而且为SOA提供了<nobr><strong class="kgb" onmouseover='isShowAds = false;isShowAds2 = false;isShowGg = true;InTextAds_GgLayer="_u6807_u51C6";KeyGate_ads.ShowGgAds(this,"_u6807_u51C6",event)' style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; CURSOR: hand; COLOR: #0000ff; PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px; TEXT-DECORATION: underline" onclick='javascript:window.open("http://pagead2.googlesyndication.com/pagead/iclk?sa=l&amp;ai=BSmEW_mf8RqK0Oqa44gG9_pCMBPCoxCmU5ayBBcCNtwGA4gkQDBgMILHzmwkoFDgAUKbwkqv______wFgnbnQgZAFoAHQ4tb8A6oBCjIwMDAwMDQxMjGyAQ1uZXdzLmNzZG4ubmV0yAEB2gEraHR0cDovL25ld3MuY3Nkbi5uZXQvbi8yMDA3MDkyNS8xMDkwNDYuaHRtbKkCtow6ZOLcgT7IAqiimwOoAwHoA7cC6ANE9QMABAAA&amp;num=12&amp;adurl=http://www.amazon.cn/search/search.asp%3FsearchType%3D1%26searchWord%3D%25e4%25b8%25ad%25e5%258d%258e%25e4%25ba%25ba%25e6%25b0%2591%25e5%2585%25b1%25e5%2592%258c%25e5%259b%25bd%25e6%25a0%2587%25e5%2587%2586%26Go.x%3D19%26Go.y%3D14%26source%3Dspgooglebkjtbkbk720176&amp;client=ca-pub-9553494669999741");GgKwClickStat("标准","www.Amazon.cn","afc","2000004121");' onmouseout='isShowGg = false;InTextAds_GgLayer="_u6807_u51C6"'>标准</strong></nobr>环境,更使不同平台、不同设备的广泛分布式计算协同成为可能。Web和SOA对于开发效率、灵活性和软件质量的诉求,恰好由新的软件过程方法和语言工具来满足。在以互联网为平台的面向服务计算的年代,对单个计算节点的计算能力、规模和节能提出了前所未有的要求,而这一点又由多核CPU、大规模服务器集群和新的并行程序设计语言的发展予以满足。总而言之,所有这一切技术变革,过去在各个领域里遵照自己的规律发展着,穿越几十年的时间,却恰好在今天这个时候汇合到一起,彼此互相支持,相互弥补,呈现前所未有的和谐与一致。为什么竟然会这么巧?难道仅仅是巧合吗?或者在这些单独的分散的技术进步背后,有一个尺度更大的,更宏伟的变革?

我们相信是后者,并且将这个更大尺度的技术变革命名为“软件2.0”。我们确信,整体大于部分之和,“软件2.0”是正在发生的技术革命,其意义远远大于任何一个单项的新技术和新方法。从其目的来看,是要以前所未有的力度削除由于技术分裂、历史包袱以及工具和方法的落后,给人们开发和使用软件所带来的不必要的麻烦,从而调整人与软件的关系,重申人在IT时代的主体性地位,让软件更好的为人服务,为商业服务。从长远来看,“软件2.0”将把人类的信息化带上一个全新的境界,从而强烈地塑造人类的文明进程。即使从短期来看,“软件2.0”为理解当今软件新技术和新方法提供了一个整体的思想框架,不但能够帮助我们理解各个领域内的技术进步,而且能够帮助我们洞悉这些新技术、新方法之间的内在联系,从而把握技术发展的趋势和走向。


(点击查看大图)


“软件2.0”是一个历史机遇。CSDN和《程序员》杂志将坚定而积极地完善和宣传“软件2.0”的概念和思想,并将在2007年11月举办的“软件开发2.0技术大会”上,邀请中外技术名流高人,具体而微地阐释“软件2.0”的各个方面。我们也呼吁中国软件开发社群中的有识之士共同努力,把握住这个机遇,,为个人、为企业、进而为整个中国的软件产业带来新的居民。

欲了解在此次大会上的更多动态,请访问2007软件开发2.0大会官方网站 如果您希望更深入了解软件2.0的发展和趋势,请在这里 参会报名

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics