不支持Flash
|
|
|
图文:CodeGear公司CEO Jim Douglas演讲http://www.sina.com.cn 2007年11月30日 00:53 新浪科技
图为:CodeGear公司CEO Jim Douglas(骆磊 摄) 2007年11月29-30日,软件开发2.0大会在北京九华山庄召开。“软件2.0”是正在发生的技术革命,其意义远远大于任何一个单项的新技术和新方法。 图为:CodeGear公司CEO Jim Douglas(骆磊 摄) 以下为其演讲全文: 的会场,想必对我们下面这位大师是翘首期待很久了,让我们掌声有请CodeGear公司的CEOJim Douglas先生,有请。 Jim Douglas:我不能像Ivar Jacobson一样,我必须要走来走去,所以我要拿无线话筒。我已经在中国一周了,先到了上海、再到深圳再到北京,我会给大家分析一下我们软件开发有什么新的趋势,我会用20多分钟讲完了,会用一点时间回答大家的问题。 我先看一下我们的发言内容有哪些,我会谈一下这个发展厂商的一些分布的情况,语言的发展、工具跟程序的情况,都是非常有趣的东西。谢谢Intel和其他的提供者,我们今天的这个平台是非常好的,我们现在所能创造的价值也非常多,这意味着对你们来说有很多的机会,对开发者来说也有很多的机会。 如果我们来看一下开发的一个统计数字,我们现在看到全球有三千万的开发者,而且这个数字还会进一步的增加,甚至达到七千万,因此我们要强调这个平台,利用这个平台、系统可以给我们带来很多的价值,对于软件的开发来讲也可以带来很多的价值。 我们来看一下开发者来自什么地方,我们可以看到曾经北美、欧洲是软件开发的中心,现在亚洲越来越变成软件开发的一个中心,再看下一个层面上,大家也不会惊讶,就是印度、中国是发展最快的地区,有人估计中国有60万的开发者,而且未来每年的发展比例很高。不久以前,我去了印度的两个城市,其中有一个孟买,这两个城市非常关注中国,他们都说中国怎么样中国怎么样,因此他们非常关注来自中国的竞争,因为中国的软件开发的活动越来越多,以及世界对他们的影响。因此作为软件开发者来说这是一个激动人心的地方,未来也有激动人心的时刻。 刚才谈了软件开发人口的分布,下面来谈谈语言的发展,刚才Jon说,有多种的语言,有管理语言和动态语言,这些语言也是随着软件开发的需求,也随着硬件的发展,过去包括COBEL,还有Minins 还有PC、C++成了通用的语言,还有Cobel也有新的发展,变成流行语言,到了Web上,我们看到了Dynamic动态的发展很多。现在语言变成了类似于工具的东西,刚才Ivar Jacobson讲到我们是有能力、有动力的开发者,我们也要了解一些变化的趋势。刚才Jon说他们大学教程序语言,现在程序语言不是核心的课程了,现在强调的是架构,语言成为次要的东西了,学了这些语言对于软件开发越来越重要,因此我们现在Web2.0,我们看到的是Client服务器,还有DATABASE都是重要的,语言非常重要,我们要看到不同的工具不同的支持以及不同的应用。在编译语言方面,我们看到技术的进展,首先我们看到技术进展一个是最快的运行时间,我们如何利用硬件高的性能、低的等待时间,这是我们要考虑的,从编译应用,我们要注重,还有独立的软件开发商要做自己的这种代码,我们看三大趋势,我们已经提到了,一个是SMP的优化,它是很大的挑战同时也是很好的机会。今天对于我们来说,我们也在关注编译语言的应用,每个人都在竞争,获得不同的编程架构,这是未来在架构方面我们特别关注,现在做很多的研究,未来的五年我们会看到在新的方面有IT方面的架构能给我们带来很大的好处,包括像Intel这样的公司。而且还会有很多的并行编,并行编程会变得越来越重要。 另外还有一个领域是64位的Enablement架构,64位在游戏方面也会用到很多,也会有语言、有工具,能够让你重新定一个目标,选择什么语言也非常的重要。还有一个趋势就是叫Smart Devices,就是移动性,对于应用来讲,这点非常引人注目。非常有趣的是,移动设置越来越强大,现在他们的存储性能都是比较低的,如果能够很快地优化编码,利用我们移动的设备这是非常关键的。如果用在移动设备上的,编译编码是非常关键的一点。还有管理语言的变化,JAVA是一个非常好的平台,95年的时候,我们出现了JAVA,JAVA是一个很大的软件开发的转折点,这是由SUN公司推出的。我们看一下现实,对嵌入的设备来说非常好,对操作系统也非常好,还有很多的服务都可以放在JAVA上。随着虚拟机的改善,我们看到JAVA和其他的语言也在企业的层面上跟服务器、跟Web的开发方面,也都变得非常严重,他们在虚拟期,他们能够实现非常好的优化。 现在从技术的角度看这样的一个平台有什么样的能力,刚才我们讲了过去几年有很多的优化和调谐,现在有很多的领域,比如业务的逻辑,看一下不同平台之间的对比,看一下它们的基础,还有系统集成是如何做的。现在我们有若干的趋势,第一个是RichClient,使客户端更加的丰富了,像RIA等等像微软、SUN推出的水平架构,所有的这些都是针对RichClent这样的平台开发的,来使我们有2.0的体现,我们看一下在管理语言的应用有很多的创新,不仅是Web还有客户端都有很多的创新,客户端稍候我会花更多的时间来讲。 另外还有一个被广泛使用的词,一个很热门的概念,就是通信。在芯片上的通信,大家来看一下,它是一个非常重要的组建,这样一个概念也是在软件领域发生的,今天很多人有一些困惑,就是有很多东西他们不知道是干什么的,或者说如何来使用的,在使用管理代码的时候,有一些应用,它会是把这个接口暴露出来,然后来实施这样的一种架构,在不久的将来,这将是人们如何来推广应用的一个例证,一旦有新的应用的话,我们会用这种方式来部署和实施。 还有一点必须要提的是移动客户端所谓的Mobile Clients,所有的应用都是移动平台上的像手机这样的平台上应用,如果像Google刚才讲的,原来在大的服务器的平台和应用,现在会在移动客户端实现。我们会看到有很多企业的应用,会从客户端的服务器上转移到这些智能的体积比较小的终端上比如说个人数据处理,也就是所谓的PDA,在过去几年我们看到很多的企业用户都希望能够通过一定的方式把原来大的机器上的应用转到他们的手持终端上。 下面我们看动态语言的演进,其实动态的语言,像我们做原型做脚本的时候,很多会谈到动态的语言,他们从一个域到真正可以被外国的设计者使用的一个域,这是未来的发展趋势,他们也会是企业应用范围所涵盖的东西。看一下它的优势,其实要谈这个优势,主要关注的一个词就是动态,动态就意味着它有更高的扩展性,从本质上来讲,它所发生的事情就是人们来实施一种虚拟机是作为一个部件来实施的,使它具有一些特征来具备一些管理码的特征或者特性。Web2.0的开发在很多情况下都看到了这样的趋势,企业的应用也有这样的趋势。 Ruby是一个很好的例子,这个语言存在几十年的时间了,比如说他用来做Web的设计,Ruby正在和动态语言结合提高更多的解决方案,因为JAVA现在对很多人来说太复杂了,我们希望有更简单的、更简便的JAVA,很多人认为Ruby是一种更简单的JAVA来写一些应用。Ruby在客户端是尤其强大的,这个胶片上所显示的就是它如何具有更好的扩展性来支持这样类型的应用。我们知道,通过过去两年的经验,我们也意识到它确实也有一些弱势需要进一步的提高,来更高效地来处理一些要求。 从未来的角度来看,我们看到第一个很明显的是框架,就是所谓的Framework,在Ruby领域的框架,在ruby等领域,框架以及Django,以及php,每天都有新的框架出现,他们使用动态语言进行创新,比如扩展性等等。这也是扩展性很重要的方面,还有就是连接性和集成性的优势,如果能够在满足可扩展性的同时又能保持很好的集成和连接性,比如数据库的连接性是比较简单的,soap会稍微复杂一些,这都是在不同层面的一个连接。 我还想提到的就是可扩展性总的来说是一个很大的调整,也是管理代码要解决的一个问题。我们看到如果在这些问题得到很好的解决,它会在市场上具有很高的竞争力。 在未来我们会有什么样的趋势呢?有很多的方式,第一是针对不同域的语言,比如针对对象的一些语言,有一个特殊的语言将会为生成地图特别来写的语言等等,还有一些通用的语言等等。从一种意义上来讲,我们会面对很多的语言,这样你可以挑选适合域使用的语言。 我想问的是,在茶歇的时候,大家有多少人参观了多少相关的展厅?展台?或者多少人真正在我们实际动手操作的房间去进行了实地的操作,你就会有一个更好的体验。比如说你真正的动手敲一下键盘,看一下屏幕上出现的东西,你就可以体验到这种针对不同域的语言究竟会给你带来什么样的体验。 再次提一下,其实我认为这将是在未来非常重要的一个发展趋势。另一个就是functional的语言直接在模式里面开发的functional的语言,比如大家之前知道的模式,像Erlang等等,它们都是很著名的例子。刚才提到了新的视频游戏,这也是一个很好的例子,我们尽量把复杂的东西想的简单一些,在过去很多东西很复杂是因为不同的游戏者之间要进行互动,它所通过的程序是比较复杂的,在未来我们要想降低成本的话就必须以一种新的方式来编写这种游戏,同时又不能影响客户的体验。在这个领域,functional的语言就大有可为。 最后一点比较重要的是就是要建设一种数据的类型,这也是针对语义的Web,我们要做的是基于文本的也就是TextBase这样的方式进行的。刚才讲了这么多,现在在工具和流程方面我们是怎么做的呢?我们要利用这个语言受益,在这里我列举了一条线,大家可以看到从石器时代到现代我们工具的升级,现在我们可以做的事情很多了,使自己变得越来越敏捷,刚才我谈到了敏捷的设计等等,整个是一个变化的过程,现在变化的速度越来越快了。因此你要问自己的问题是开发是否能够变得越来越简单,我希望大家在离开这个房间的时候,脑子里都会始终想一下这个问题,其实也只有开发变得更简单才能更好地推动创新。我们如何使它变得简单呢?我刚才看了很多工具包、框架方面的内容,你都可以充分使用它们进行开发。还有你可以用的一些辅助软件以及底层的代码,有很多人对底层的代码不是很了解,究竟它们是做什么用的。换句话说,这些编码并不是域用的。很多人关注上层的应用而不是底部的代码,但是如果你要提高生产力的话,你要对整个流程有更细致的了解的话,在软件开发领域一个最根本的挑战改变利用你的脑力、利用你的知识来对这最根本的东西有一个最根本的了解。我经常在世界各地出差,我看到在软件分销方面不同的公司在不同的地方都有不同的分销团队,我们尽量使这些分销团队相互协调,组成一个高效的营销网络。另外要使你的营销网络比较有效,还要保证各地之间的连续性,其实在编码领域也是同样的道理,我们要保证整个软件开发过程的流畅性简单性,就必须保持各个环节的连续性,你的知识不能在哪个方面进行一个断层,也就是说从地层的代码一直到最上层的应用软件你都要有一个很好的理解。 我们近来还有一个概念就是应用的工厂,很多人是自上而下来了解这样一个演进的过程,把底层代码结合起来了解整个变化的情况,来使它作为一个起点。 现在我们做一些工作,在2008年在这方面也有一些突破,在JAVA方面有一些突破,未来的一些框架,未来的一些和概念相关的语言可能是广义的也可能是针对某一个产品的特殊语言,将会有很多的改变出现。而我们的意图和请求一旦出现,下一步要做的你要捕获和了解这些需求。待会儿我会更详细地讲一下域的一些应用还有一些特殊的行为,你都要具备很好的可视性,也就是说你要对它进行很好的了解,这样才能针对相关的要求提供相应的应用和导航。 最后看一下把应用作为一个一等公民,也就是说应用是最重要的东西。我们来看一下,我们有一个设计师、有很好的架构师他们用这些应用来写东西,我们可以看到有一系列的脚本,这些脚本都会影响应用软件。最近在应用方面的一些变化就是来推动一些软件,我指的是应用软件的一些演进。比如说他们更加关注围绕这些应用进行开发,更好地了解这个应用背后它的意图、它的请求、它的需求,来给大家展示一下,究竟这看起来是什么样的,比如有这样一种环境,他们说给我们展示所有的应用,比如Face2.0,我们有了这样的一个请求就出现了四个应用,在最上面有一个窗口,它会告诉你有哪些应用显示出来,我们将使用哪些文件,当点击软件之后,我们不仅可以看它,可以使用它来编辑建设一个新的Web。你看一下这个幻灯片的中部,有一个很详细的架构方面的阐释,你可以看一下,了解这个架构,你就不用再去查100多、200多页的资料了解这个架构了。也就是说整个的流程其实是更加简化了,而左边的盒子也动态地和我的架构的图连接起来了,如果你点击的话,可以得到很好的相互关联的反映。我还可以来调整,我希望在这样的页面上,在这样的架构下,究竟这个详细程度有多少,我也可以自己进行设定,比如要展示很详细的信息还是概括性的信息就可以了。另外我们平常比较头疼的问题就是文档归档的问题,通过这样做,你也可以对归档的问题进行很好的处理,在这样的环境下,我们有一个小窍门,可以对文档进行编辑,做一个记录Note,最后这个Note也会非常好用。也就是说我对每一个盒子,每一个小画做编制的时候都会记录下我当时的体会或者需要修改的东西放在这个Note里面,最后它可以给我提供非常重要的参考。 另外,就好象和配方一样的道理,Note注释里面就可以给我提供这个菜单,这个盒子里面讲的是什么,我可以提出哪些修改,这些修改的初衷是什么。这是我给大家提出的一些想法和概念,希望能够帮助大家了解一下未来技术它的发展趋势,以及哪些技术可以推动这些趋势进一步的发展,这些概念现在还是一些概念化的东西,但是在2008年就可以成为现实。 刚才讲了一些处理、一些语言,一些不同的图示,比如一些应用的东西,一些针对不同对象的东西,以及互联的东西,整个的宗旨就是通过所有这些并行工作的同时使整个开发过程变得容易一些、简单一些,让我们看一下库的东西,第一个就是同时性的编程,现在需要把序列编程变成这种同时性的编程和同时的处理,大学一些研究机构提供了相关的工具和平台,我们可以把它真正地变成现实了。刚才已经说了,我们处在Tipping Point,也就是从软件开发跳出来,跳到IT领域整个提高性能的提升。这是我们面临的关键的变化,而且也可以应用下面的硬件基础设施,好像很像一种虚拟的团队或者虚拟的办公室,我可以写一些东西来全球进行发布,PHG在罗马尼亚在印度都在研究这个概念。想到要把这样的一个图示,这样的结构向全球来拓展的话,可以到网上去,花30分钟的时间就可以从专家那儿了解到更详细的内容。 他们会给我10分钟的忠告,告诉我如何做EJB,原来你有很小的资源,现在全世界的资源都可以利用,使你们成为开发专家,将会跨越组织,形成虚拟,开发人也可以进一步推进这一点。曾经这个概念会化为现实,现在由于开源,开源能够让我们来利用组织好这样一个社区,形成这样一个高生产力的环境,这是很好的机会。 另外虚拟工作场所也是给我们很大的能力,我们现在能够联系上不同的针对不同的服务或者我们可以连接上同样的人来看一下如何把Component放在软件里面或者是购买一个Component,这是一个好消息。我们要考虑一下有这样一个虚拟的市场,有一个虚拟的社区,如果你能够获得这些技术和人员,都能够帮助你进行更好的开发。 我刚才谈了所谓Rich Client也就是富有客户的应用,非常有趣的是,我们看十年,过去客户在过去来说,他们在桌面上的体验非常丰富,在Web上的体验非常少。现在情况已经完全颠倒过来了,现在利用这个Web,我们能够给客户非常好的体验,利用这些平台。不管是什么,它能够给我们的客户非常有非常丰富的体验,一直到服务器一直到应用的层面,我们也要好好利用这些方法,利用它们能够推动往下的变革。我刚才讲要把不同的Dataypes,刚才讲到语义网,我们可以从全世界获得不同的数据,但是如何整合?不容易。因为我们数据是来自世界不同的地方,因此我们要考虑一下全世界,考虑一下不同数据的类型。现在他们本身就成为了Web,然后就可以做新的技术,用新的技术的描述语言,我们也会利用这种编码来给我们更大的力量走到下一步去。十年以前,相比五年以后都会有很大的变化,这不是一个公司能做的,一个人能做的,我们需要很多的人来利用这些程序的方法,来更好地利用这些程序的方法。我们不能光让这些数据呆在Web上,我们要和不同的团队结合。以前我们看到的公司是作为一个领先者,领先一个概念。我们也需要用业务的观点看这些。 最后,应用跟线上开发。现在我们有一些工具,以后还会有主机服务的提供者,让你有更好的工具。Dobe最近也宣布了他们所有的工具都会放在一个主机上,他们提供了一个主机的服务。这样的话,你能够获得很大的计算能力来给你在应用的开发方面更丰富的应用。我希望引起一些思考和一些灵感,关于未来,关于语言和工具,关于关键趋势、编程等等,有的你已经知道了,有的你将来会获得知识。因此这样的论坛是非常的有用,你可以了解很多这样的概念,而且能够跟你的同类进行交流,谢谢大家,这是一个非常好的大会,它能够刺激我思考如何成为更好的程序员。 未来世界将会有很少的混乱。现在我们编程的力量不光在我的团队里面,不光在我的大脑里面,我们有一个虚拟的事情是可以利用的,利用他们的才能。 另外还有一个虚拟的环境是我们可以使用的。如果我们有创造力的话,我们要考虑新的方法,把开发的领域不断地扩大,关键不光是要了解语言,而是要善于学习利用抓住机会。像这样的大会,利用这样的大会学习东西并且彼此应用,这样我就结束了我的发言。我们有一个86号展台,大家可以到86号展台了解我们公司更多的情况,谢谢大家。
【发表评论 】
|