作者:孟岩、陈榕 来源:CSDN博客   酷勤网收集 2007-12-09

摘要
  陈榕一方面致力于国产嵌入式操作系统的研发,另一方面也不遗余力地将先进的软件技术理念和工程方法引入国内。当网上围绕3G的争论如火如荼的时候,本刊记者在清华园中采访了陈榕,本来是想听听他对3G的看法,但陈榕由小见大,侃侃而谈,为我们展现了一幅未来软件的图景。
《程序员》2005年4月文章——陈榕访谈
编者按:科泰世纪公司CEO陈榕,是软件技术圈子里的知名人士。他长期在微软公司从事Windows核心部分的开发,在操作系统和软件开发模型上有着独特的技术间接。回国创业之后,陈榕一方面致力于国产嵌入式操作系统的研发,另一方面也不遗余力地将先进的软件技术理念和工程方法引入国内。当网上围绕3G的争论如火如荼的时候,本刊记者在清华园中采访了陈榕,本来是想听听他对3G的看法,但陈榕由小见大,侃侃而谈,为我们展现了一幅未来软件的图景。

1. 3G碰巧拖了一拖

孟岩:陈榕,您好。我们今天的采访是以3G为引子,想通过这个引子请您来谈谈您对3G时代手机以及其他数字家电软件平台的构想,进而请您系统阐述您对与未来软件发展方向的观点。您一定知道,最近3G这事吵得挺火的,原因是春节前经济学家胡鞍钢博士发表了一篇报告,呼吁尽早放开3G,并称放开3G将每年提供100万新增就业机会,1800亿的GDP。报告中批评中国政府被一小部分人的利益所左右,并用了“国家被劫持”这样相当刺激人的说法,所以引起轩然大波。这份报告您看了吗?
 
陈榕:我看了。
 
孟岩:您关注这件事吗?这事跟我们程序员有多大关系?
 
陈榕:不太关注,我觉得跟我们也没太大关系。这次争论更多的是经济学家之间的争论,我是搞技术的,对他们争执的那些话题没有深入的了解。我只是觉得3G发布要体现老百姓和产业的利益。国外3G技术成熟了,不代表中国3G产业成熟了。
 
孟岩:那我们抛开胡氏报告,以您作为一个软件技术专家看来,3G宜早还是宜迟?
 
陈榕:如果从3G终端软件技术来看,配套的软件水平比硬件滞后半年到一年。国家3G牌照一拖再拖,恰好对3G软件产业有好处。就算今天3G发牌,第一批手机厂商会用低档手机探路,不需要太复杂的软件。半年后业务需求上来了,我们的软件平台也成熟了。我倒真觉得3G拖一拖碰巧帮我们度过了危险期。
 
孟岩:拖一拖?真出乎我的意料,我以为您作为一个3G手机软件平台的设计师,一定会希望3G早上。
 
陈榕:我给你讲一件事情,或许能帮助你了解我的想法。欧洲在1993年制定了一个工控机软件的标准,我原来在北京做过一段数控机床软件开发,2000年回国的时候,一个老朋友跟我提起这件事,我想了一下,说93年的标准,可能有问题吧。我那个朋友很惊讶,说你怎么知道?原来欧洲1997年又制定了一个标准,把93年标准给改了。你要知道,那是欧洲标准!不是小孩子过家家,今天一个,明天一个。欧洲做数控机床,那是从70年代开始积累经验,积累了20年,总结出共性,制定一个93年标准。结果四年就改,这是一件很丢面子的事情。可是必须得改。为什么?因为1995年Java出来了。Java有Class information,有reflection。那些数控机床软件方面的专家也是高手啊,他们凑在一起一琢磨,完了,前面全都做错了。做错了怎么办,当然只好推倒重来。
 
同样的道理,如果今天我们急急忙忙上3G,别的领域我不懂,但是在软件方面,肯定是个落后。什么原因?因为今年微软的Longhorn要出beta,明年要出release。没有Longhorn给人们演示未来的软件的样子,今天在国内恐怕没有人能把一个面向未来的软件平台标准制定好,所以一动手肯定是错。国家是不开玩笑的,一个决定下来,错了也得执行,多少千亿的资金都要往里面投,如果软件平台不够先进,将是多么遗憾的事情!等过个三、四年,你说改还是不改?
 
孟岩:您等等,我有点糊涂。我们不是说3G,说手机软件平台吗?怎么跟Longhorn扯上了关系?
 
陈榕:因为只有Longhorn实实在在出现了,才能让大家明白什么是软件发展的真正方向,什么是未来的软件。而只有大家明白了这一点,才可能制定出合乎未来发展需要的3G软件平台标准。在Longhorn出来之前,我看凭个别人的能量和说服力,中国的软件业和有关部门不可能意识到这个问题。这倒也不是说咱们中国人格外保守,所有人都是这样的。你也知道,Windows 1.0/2.0的时候多么的惨淡!C语言一开始也受到很大的怀疑和抵制。我1997年和DOS 1.0的作者Tim Patterson一起工作的时候,他还在用汇编,还在怀疑C语言,可见有些东西改变起来是不容易的,仅凭我们几个人的呼吁是不足为信的,必须等微软出手。
 
Longhorn原计划去年发布,结果不争气,没能发布。无论如何明年要出来吧。Longhorn一出来,就相当于95年出来的Java对数控机床软件标准的影响。我们甚至可以说,任何软件标准,只要在Longhorn发布之前制定出来,一定是落后的,一定要几年之后重新再来。
 
这就是我的论点,跟胡鞍钢说的不是一档子事,我不太明白他们争论什么,大概他们也不会很了解我们软件技术中的这些观点。我认为过去3G缓行是对。我是基于软件技术观点来说的。
 

2. Longhorn引导“没有软件”的时代

孟岩:这么说来,Longhorn实在是太值得关注了。您参与了Longhorn的一些开发是吗?
 
陈榕:是的,我参与过Longhorn三大支柱技术之一Indigo的部分开发工作。
 
孟岩:那您对于Longhorn的意义应当是非常清楚了。能否给我们概括一下,Longhorn到底意味着什么?Longhorn的三大技术,Avalon、Indigo和WinFS是个什么关系?
 
陈榕:先说说Avalon,它要在用户界面层次上把程序与数据统一起来,把浏览器界面与应用程序界面统一起来,程序代码和网页都可以下载。而Indigo是提供一个安全可靠的运行环境。代码下载以后,应当在哪个ApplicationDomain中执行?如果权限不够,能否在远端执行?这通过Indigo可以做到,Indigo利用程序中包含的metadata信息可以在远端分配资源,执行应用程序。请注意,如果没有metadata的支持,这件事情绝对做不成。再说说WinFS。你大概知道WinFS把文件系统做得跟数据库很相似,本机上的WinFS其实就相当于整个Internet的一个本地cache。这有什么好处呢?我们说未来所有软件都应该通过URL来定址。现在我需要一个软件了,根据它的URL我先通过WinFS搜索本地cache,这个是非常快的,搜索不到就到网上去下载。这个这个过程是完全透明的,把网络与本地系统统一起来了,而且速度很快。除非你非要把文件“另存为”到什么地方去,否则你不会觉察到硬盘的存在,甚至没有这个概念。传统的文件系统因为其工作方式的限制,在这种应用时效率偏低,而且文件系统中文件的属性也太少,不够用,查找起来也不方便。
 
现在综合起来看,人们用上Longhorn之后,软件可从网上透明下载,下载了之后可以放在一个受控的、安全的运行环境中运行,还可以借助本地cache提高效率。这几点都具备以后,你就可以完全不用关心软件下载和安装这回事,运行软件也非常安全。这样一来,软件这个概念就不必要了,什么文件格式也就不必要了,软件完完全全变成了服务。比如我想看这个录音机的说明书,现在你要怎么做?首先一个看,好,这个说明书是PDF格式,那么我要看PDF该用什么软件?问问朋友,啊,应该用Adobe Acrobat Reader。好,在网上一搜,搜到了,下载,安装,这才能打开这个PDF文件。软件变成服务以后是个什么样子?厂商提供了一个说明书给你,这个东西里面是PDF,把它打个包,你都不用去关心它是什么,直接执行它就行了。它的metadata里指明阅读这个说明书的内容需要用Acrobat Reader,并且有Acrobat Reader的URL,这样就可以首先看看本地cache里有没有Acrobat Reader,没有的话从网上下载一个来执行,这样就把这个说明书给显示出来了。整个这个过程,用户根本就不知道有Acrobat Reader这个东西。再举一个例子,梁肇新发明了一个媒体格式,有人用吗?没人用。为什么没人用?因为你这个格式不标准,非要装他的解霸才能看。如果软件变成了服务,这个电影打了包,包里面的URL指到梁肇新的解霸,那么就有人会用这个格式,而且用了也不知道。谁关心呢?
 
孟岩:那就是租软件了。
 
陈榕:对,rentware。到了那个时候,新的问题就来了,就该胡鞍钢那样的经济学家们去研究研究,老百姓没有软件概念之后,失去品牌的软件企业和软件产业如何发展的问题。软件企业今后更多是靠跟运营商分成。
 
孟岩:运营商成了老大了,做内容的也很滋润,反而是做软件的成了透明人。
 
陈榕:整个产业的基础结构都发生变化了。所以这是一个巨大的变化。
 
孟岩:这件事情在技术上完全可能吗?
 
陈榕:有了metadata,现在就完全可以实现。
 
孟岩:对于用户也是特别好的事情。
 
陈榕:没错。不过是不是真能成为现实,还有很多其他的因素来制约。
 
孟岩:所以说现在网上争论什么3G、4G,如果说有不同,也不过只是量变,而Longhorn一出来,展现的是一些质变的东西,是吗?
 
陈榕:完全正确。软件有没有metadata是绝对的分水岭,绝对的巨变。有metadata,就可能步入工厂化的时代,没有metadata,就完全不可能。有了metadata,软件就无处不在,也就没有了。没有软件,也就没有微软、Adobe这些品牌。请注意到,驱动程序也是软件,也可以被透明掉,驱动程序透明了,硬件也就没有了。你需要的只是打印照片的服务,至于是HP的打印机还是Canon的打印机,根本就不用关心了。所以硬件的概念也没有了。这是多么大的变化!佛家讲究一个“空”字,什么都可以“空”掉。我觉得软件发展已经快到“空”的境界了。
 
孟岩:不得了!我听说Longhorn也只是一个过渡,后面还有更科幻的操作系统,是吗?
 
陈榕:不就是Blackcomb吗。你知道Longhorn这个名字是怎么来的吗?
 
孟岩:不知道。您给我说说。
 
陈榕:温哥华北面有一个北美最好的滑雪胜地,微软很多人喜欢到那里度假。那里有两座山,一座叫Whistler,另一座叫Blackcomb。Windows XP的代号是Whistler,而Longhorn之后的那个Windows代号是Blackcomb。那么Longhorn又是怎么回事呢?在那里滑雪的人,一般先从Whistle山上滑下来,然后到两座山之间的一个小酒馆去休息休息,再去滑Blackcomb。这个小酒馆就叫做Longhorn。所以很清楚的,Longhorn是从NT体系的顶峰Windows XP迈向新高峰Blackcomb中间的一个过渡系统。
 
孟岩:原来如此!现在产业里常有人提3C融合的概念,就是计算机(Computer)、消费电子产品(Consumer Electionics)和通信(Communication)的互相融合。到了Longhorn及以后的时代,是否这种融合就实现了?是谁融合了谁?
 
陈榕:不是谁融合谁,而是从根本上更新换代。现在有些智能手机不断增强功能来模拟一个小PC,这种思路正确吗?这是3C融合吗?我不这么看。这不能从根本上解决问题。刚才说了,如果没有软件了,硬件也就没有意义了。这个东西是电视还是电脑,还是网络终端,没有分别了,它只是让你享受各种服务的一个设备,这不就融合了吗?
 
孟岩:微软引导这样一个潮流,让软件的概念从大众的视野中消失,最后会不会是自掘坟墓?
 
陈榕:这倒是产业经济学家们应当讨论的问题。但是无论答案是什么,微软必须得干。为什么?因为微软是高科技公司。说实话,metadata这事并不复杂,你要是老不动手,说不定谁想通了,去注册一个专利什么的,微软就无论如何绕不过去了,那么这家公司就没前途了。股票市场认的是前途,一个没有前途的高科技公司,无论多大,18个月就会倒闭。历史上不是发生这个事情吗?1995年12月8日珍珠港事件纪念日,比尔盖茨发表一个讲话,说以后整个公司所有的项目都围绕Internet进行,为什么?不就是当时受到了网景公司Marc Andreeson的压力吗?现在是一样的,所以变革是不可避免的,顺之则昌,逆之则亡。
 

3. 关键是Metadata

孟岩:说来说去,一切奥秘都在于metadata?
 
陈榕:太对了,就是metadata,也可以叫做class information。没有这个东西的软件产品,无论吹得如何天花乱坠,绝对是没有前途的。有了metadata,无论他设计的时候出发点如何,就拥有了通向未来的一切能力。Metadata就这么关键。
 
孟岩:所以.NET如此强调metadata,而且在设计上要优于Java。您是否因此就认为长远来看.NET还是要比Java有优势呢?
 
陈榕:从技术上来说Java也包涵metadata,所以能引领世界潮流。但我认为微软对metadata的理解更深刻一点儿。原来VB的那个TLB其实就是metadata,所以微软在这方面有好多年的经验,设计上确实要比Java更一针见血。所以我还是比较看好.NET的。当然企业开发市场会有所不同,因为企业开发在软件产业里是以保守著称的,企业更在意稳定性、可维护性,对于新技术远远没有那么敏感,对于较高的费用也有能力支付。另外在手机上,.NET目前几乎是零,想要突破也很困难。我倒觉得这中间主要是政治原因,不是技术原因,微软功名反被功名误了。换句话说,微软的.NET在技术上和编程模型上确实有优势,但是最后是不是能“赢”,现在真是不好说。微软今年也步入而立之年了,后面要走好。
 
孟岩:您在微软工作了很长时间,看来感情还是很深的,而且您对于微软的技术路线和发展战略还是认同的。那么为什么您又回国来创办科泰世纪,推广和欣技术,走另外一条路呢?
 
陈榕:原因也很多了。其中之一自然是中年危机,如果不干点事情,这辈子就这么过去了。恰好我的特殊经历使我能有比较超前的技术见解,所以要去实践。微软的.NET是要跟Java全面竞争,对于传统的嵌入式、实时这个部分重视不够。我们则是要瞄准消费电子产品市场。再则,在技术路线上,我的观点跟微软也不是完全一致。我们的技术跟微软.NET方向相同,技术路线和市场定位不同。
 
孟岩:有什么不一致的地方?
 
陈榕:我说过,关键是metadata,有了metadata,软件就可以过渡到工厂时代。到了工厂时代,夸张点儿说,我觉得软件开发会出现一个回归,反而用C/C++甚至用汇编来写模块成为时尚。为什么?因为到那个时候用软件零件“攒”应用,每个零件都要拼质量、拼价钱。所以我不赞成所有软件都使用C#、VB这样的高级语言来开发。系统软件就应该用C/C++来写嘛,我把metadata给你配上不就完了,为什么非逼着我用C#写,写完了还非要编译成IL呢?我直接用C/C++来写,不是效率更好吗?有了metadata,C/C++现在的劣势都可以被克服,而优势可以充分发挥。我认为Longhorn迟迟推不出来,主要原因是因为微软的技术路线定位不准确。
 
孟岩:这就是“和欣”的思想。我们下次来集中谈谈“和欣”的技术思想。

评论

#   有意思 发表于2005-09-14 11:51:00  IP: 211.100.21.*
如果一个文件格式有多个价格不同的软件可以打开,那么这个选择权是在用户手中还是运营商那儿呢

#   someone 发表于2005-09-14 13:10:00  IP: 211.100.21.*
如果一个文件格式有多个价格不同的软件可以打开,这个选择权应该是在打包的人那吧,打包时将metadata中的url定到哪,到时就去那个url下载软件了

#   k 发表于2005-09-14 21:25:00  IP: 211.100.21.*
倒是很可能软件公司会更积极的担任打包的工作吧

#   刘未鹏 发表于2005-09-20 20:55:00  IP: 211.100.21.*
陈榕的大部分观点我还是赞同的,metadata确实非常关键,但我认为把它的功能夸大到这个程度至少在未来的十年之内都有点言过其实了。
我觉得软件根本意义上就不可能迈向空的境界,原因很简单,世界是异化的,软件也是异化的,用户也不是瞎子,用户有权利去选择自己的软件。
如果我没有误解你的意思,avalon其实就是把对软件使用的控制权放到了所谓打包商的手里,而用户则处在了一个被迫使用的位置,如果是这样那么用户遇到不好用的软件或者昂贵的软件仍然会去寻求其它的替代软件。如果打包商提供多种选择,那还是等于让用户去选择,只不过稍微方便了一点用户而已。简而言之,软件商绝对不会沦为二类公民,软件广告仍然会遍地都是,或许会更多,软件厂商也完全不必受制于打包的,因为后者如果打包了一个不好用的软件,用户会感到不满意,最后吃亏的还是它。而且,连找什么软件都不会的用户又能常用几个软件呢?
软件的品牌永远也不可能消失,软件的功能、易用性、界面等特征根据不同厂家而不同,你能指望一个作坊软件有大公司的软件那么好用?那不就结了?除非avalon能够同化所有软件的界面,再禁止所有软件在菜单上放上"about",再禁止提供"onlinehelp",开玩笑!
硬件的概念也会消失?这个玩笑就有点大了,或许是我幼稚,但我不知道打印一份文件可以不用打印机;-)顶多顶多也就是驱动程序的确不用用户操心罢了,而这个能力一个小小的软件就能提供,哪需要用这个牛刀?不就像带了个免费的驱动精灵一样嘛。但问题是用户总得去买台真刀真枪的打印机回来吧,那不就结了?难道到那个时候每台打印机都长一个样?上面都不会印有“Cannon”还是“Epson”字样?难道他们的打印效果都一样好?价钱都一样?都是激光打印还是喷墨打印?我是真的不懂-_-!
做软件的成了透明人?Never。用户用的就是软件,我是真的不明白(尽管我详细的读了整篇访稿)软件人怎么会成为透明的。还是那句话,除非Avalon能够同化所有软件的界面和功能,呵呵如果那样的话可真是“巨变”了——“巨大的灾变”。

说了一通,逻辑可能有点乱,但说白了很简单,我觉得软件不可能会失去品牌,软件厂商也不可能隐身到幕后,硬件更是不可能迈向“空”了(除非光用驱动程序就能打印文档;-))。
至于微软的这几大技术能否带来革命我看倒也未必。首先访稿中说的巨变依我看至少在十年之内是肯定不会发生(其实我认为Never;-),除非世界上只剩一个牌子)。

至于最后提到的软件工厂,如果我没有误解,大概指的就是有了metadata,软件就可以零件化,因为每个零件都可以自描述,另外语言的界限也消失了,所有语言之间都可以inter-operate,如果的确是这个意思的话,我仍然觉得这跟工厂化一点关系没有,如果一方要向另一方买一个零件,那么不管这个零件有多自描述,至少Manual/Document是肯定少不了的,另外,语言之间的互操作难道是制约软件迈向工厂化的因素??一门语言要成熟,自然自己会打点好户操作性,像Python/Lua等跟C的户操作,至于metadata,你管他用什么手段互操作?只要能不就行了。还有,有些语言本来就是适合在底层干活的,譬如C就怎么也不可能被用来干所谓的企业级应用,那买C零件的人用的语言能跟C交流不就完了,这些现在也能到做呀。说到底我就是不懂为什么有了metadata就“工厂化”了?metadata就是能够把软件的“文档”内置而已,能改变软件的本质?另外,主

#   Jason_yan 发表于2005-10-29 12:32:00  IP: 211.100.21.*
软件开发会出现一个回归,反而用C/C++甚至用汇编来写模块成为时尚。?这个观点我不同意,低级预言甚至c++都太强调技术细节,在一个基于虚拟机的可控环境里,架构和设计才更重要。如果零件都小到不需要架构。那么陈先生对零件的定义细分有点过了。这么细的划分需要多么复杂的metadata来描述?描述不同种类零件的metadata的结构的描述文档分类等等就足以吓死人了。当然也不排除这种可能。这样的软件(按原文的说法,应该是服务)必然是多个高內聚,低藕合的零件的组合结果。需要一个良好的架构平台和性能的一些下降。还是那句话,有这种可能,但是有太多的变数。在IT业,技术不能决定一切,所以这些条件是否能够满足并得到大多数人的认同呢?还要考虑大多数人的心里怎么想的。

#   Jason_Yan 发表于2005-10-29 12:35:00  IP: 211.100.21.*
软件开发会出现一个回归,反而用C/C++甚至用汇编来写模块成为时尚。?这个观点我不同意,低级预言甚至c++都太强调技术细节,在一个基于虚拟机的可控环境里,架构和设计才更重要。如果零件都小到不需要架构。那么陈先生对零件的定义细分有点过了。这么细的划分需要多么复杂的metadata来描述?描述不同种类零件的metadata的结构的描述文档分类等等就足以吓死人了。当然也不排除这种可能。这样的软件(按原文的说法,应该是服务)必然是多个高內聚,低藕合的零件的组合结果。需要一个良好的架构平台和性能的一些下降。还是那句话,有这种可能,但是有太多的变数。在IT业,技术不能决定一切,所以这些条件是否能够满足并得到大多数人的认同呢?还要考虑大多数人的心里怎么想的。

#   kao 发表于2005-11-22 20:27:00  IP: 222.240.24.*
看到通篇文章,感觉拉登要来了!

科幻电影里面常有的公司统治地球或者星系的模式,我阅后感觉微软像吃了x哥要硬了。。。。。

微软有传销式的洗脑过程或者陈ufo的脑袋被腿夹坏了?!

#   Leaf 发表于2005-11-22 13:26:00  IP: 218.242.140.*
感觉是两个编辑在一起编故事吓唬小孩子的对话,太多似是而非的观点,不能苟同
Metadata -->软件工厂?
软件行业被运营商控制?
感觉是扯淡。
绝对的扯淡。

#   无心人 发表于2006-01-11 17:07:00  IP: 221.195.35.*
我想未来应该这样比较好

标准化某些软件功能的接口, 通过本机的一个表搜索需要用的功能的函数代码, 没有的网上下载, 所有相同功能的要有一个评定,类似日用品的质量评定,用户可以选择某层次的一个公司做的

用户数据在各种接口中传送,类似加工工厂,用户还是要关心加工的质量和速度,并据此付费

需要全时全区全速网络支持,另外所有不同的操作系统也要提供统一的结构

#   王伟 发表于2006-10-11 14:47:00  IP: 58.34.53.*
他们说了这么多把俺都说糊涂了呀?谁能给俺说清楚啊!?

来自:http://blog.csdn.net/myan/archive/2005/09/11/477532.aspx

分类: IT程序人生 修炼之道 求职招聘 程序员创业



关于酷勤 | 联系方式 | 免责声明 | 友情链接