Java之父Gosling访谈:纵观Sun的开源路

      开源培养出可靠而且更安全的软件。??这是Java之父James Gosling的看法。他目前依然在Sun从事软件开发研究工作,并在调校他十几年前所创造的语言和平台的发展战略。
  
      Silicon.com最近有机会与Gosling就Sun决定发布GPL(通用公共许可)下Java的决定,开源是不是比专有权软件更安全,IT部门如何缩减开发成本,以及微软为什么依然把持桌面系统市场等问题进行了探讨。
  
      Sun开始接纳开源软件。您为什么会对Java敞开大门?
  
      Gosling:之所以选择Java是因为有多种原因。其中之一就是要让人们在很多场合使用Java,让人们为平台和其他一些设施上开放端口。
  
      最主要的原因之一就是我们与开源社区的合作更多了,社区里的人们从修补漏洞到安全审计几乎无所不能。Java之所以在安全性方面如此成功的原因之一就是我们让太多的人能够看到源代码。
  
      我们做过大量的测试和设计工作,但是没有什么工作能够比得上让几千双精干的眼睛一起盯住软件,共同思考。
  
      但是直到去年十一月,Sun才宣布将发布GPL下的标准开源许可Java。
  
      Gosling: 很长时间以来,Java的源代码是属于任何人的。直到最近才出现了许可。许可中说:“源代码公开,但是在通过测试之前,不得将自己所进行的修改对外发布。”
  
      为此我们遭到了开源社区的猛烈批判。我们认识到围绕测试、互操作性和可靠性的市场压力相当大。许可中的条款没有什么用。于是我们换用GPL许可。
  
      “对于企业来说最大的威胁来自人性天生的不可靠和懒惰”
  
      什么时候会转换到GPL?
  
      Gosling: 我们依然处于实施阶段。我们期望能在五月份全部完成。
  
      你是否相信开源开发模式天生具有更高的安全性?
  
      Gosling: 是的。因为这是能够信任某个软件的唯一方法。安全是很难进行测试的。因为你不会测试你的设计作品是否安全。你必须这么做,必须找出是否有裂缝?设计层上是否存在缺陷?而且没有自动测试技术。一切都无法替代那些戴上黑色帽子的人,他们说:“我来试试。”然后他们就那么做了。
  
      10年前,人们出于合作精神而偶尔涉足Java。我的有些同事发现了缺陷,我们马上就进行了修复。从来没有发生造成实际损失的安全问题。世界上没有Java防病毒软件,因为根本就不需要。全世界的专家们为我们详细审查了12年。
  
      对于设计语言、软件和平台的人来说很难全方位的预计到别人的闯入方式。
  
      Gosling: 的确如此。因此在设计测试时,测试定会受到你所预想的人们闯入方式的限制。你所设计的测试能够阻止任何你已知的闯入方式。你可以坐下来考虑新的闯入方式。但是无论如何你的想法都不会比外面数以千计急于在博士论文中添上一笔的研究生们的想法更有创造力。
  
      随着时间的继续,是否会看到更多开源技术在企业领域中的应用?
  
      Gosling: 是的。从开源操作系统到数据库,从编程语言到开发工具,有一个临界点就是已经有很多人在使用,所以很难设想有更多人使用的情况。现在正在接近这个临界点。有些领域,比如大规模数据库和ERP还没有严格的开源ERP解决方案。开源社区正在向这一领域努力。
  
      您认为对于企业来说最大的威胁来自哪里?
  
      Gosling: 对企业来说头号威胁当属人与生俱来的懒惰和不可靠。我们能够把软件设计的天衣无缝,但是如果有人说设备的根秘码“完全无关紧要”,任何人都能够进入并登录设备。
  
      你要知道有多少人会为了省事做类似的事情,一定会大吃一惊。世界上到处都有关于IT的操作,企业员工对安全措施厌烦了,就会一关了之。
  
      甚至他们可能会做相当傻的事情,比如他们会在笔记本电脑中保存企业客户数据库,并在度假期间将笔记本电脑遗失。
  
      你认为要推行严格的安全政策主要责任在IT部门吗?您觉得时候有什么方法能够减轻他们的工作?
  
      Gosling: 我们投入了很大精力来使安全政策尽量易于管理。我们希望能够确保安全政策不要过于繁重,不会导致IT部门的怠工。
  
      Java和Solaris (Sun的Unix操作系统)总有多内容都是要使铜墙铁壁般的系统更容易使用。但是在某些场合,对人们的懒惰没有限制。
  
      Java技术的第一个实际应用是为为消费者电子学进行开发。 你对Java抓住企业机会的方法感到惊讶吗?
  
      Gosling:Java能够用于企业开发并不让人吃惊,因为其本身就是专为处理大规模服务器操作而设计的。倒是企业对Java的接受程度让我有些吃惊。
  
      您能举个例子么?
  
      Gosling: 比如Java在旅游行业Sabre和Orbitz公司中的大规模应用。比如FedEx 这样大量使用Java技术的企业,如果不用Java代码就无法通过FedEx发送邮包。如果不使用Java代码几乎就无法进行银行交易。
  
      “如果不用Java代码就无法通过FedEx发送邮包。”
  
      说说您见过的最有趣的Java应用吧?
  
      Gosling: 我对科技领域内的事情更有兴趣。最近火星漫游者正在火星附近徘徊,地面控制系统就有很多Java代码。或者世界上最大的望远镜,Keck望远镜。它的控制系统中有大量的Java代码。没有比这更酷的应用啦!
  
      软件开发成本一直都是IT预算中的重头。有没有可能降低开发成本?
  
      Gosling: 没有。我的回答“没有”可能有些不好理解。我的职业生涯中绝大部分时间都在研究帮助开发者降低成本的工具,使开发者的工作效率更高,更多产。一般来说这样的工具都是有效的。但是观察IT部门的开销,我们会沮丧的发现IT部门的开销并没减少。
  
      我曾经观察过这个有趣的现象。如果使用良好的软件开发工具,减轻开发者的工作使他们能够更快的完成工作,那么经理们首先会说的一定是:“你现在有空的话,再把额外的工作也做了吧。”
  
      这么说IT部门开销不变但是工作成果更多?
  
      Gosling: 如果你观察IT部门今天的工作,会发现其中一大部分工作在5到10年前是没有的。过去没有网上银行,没有在线股票交易,没有网上旅游业务,一切都不一样了。人们对IT的需要总是超过IT部门所能提供的。
  
      所以很可能每个IT部门都处于崩溃的边沿。如果超过崩溃线,IT部门崩溃了,事情弄得一团糟。如果没有到达崩溃线,工作会简单一些,但是人们会说:“我们能做的更多。”
  
      在某种意义上来说我自己认命了。在象我这样的工具开发者中,节省IT成本几乎等同于让IT部门做更多的工作。
  
      综观当今的各种开发工具,您觉得还缺少什么工具,哪个是必需的工具?
  
      Gosling: 目前的焦点已经从语言转移到了开发环境和编程界面。开发语言就象集线器,将各个方面接合在一起。过去几年中,企业软件开发中最有趣的进步是工具的进步以及IDE (集成开发环境)。
  
      你认为这是一种好趋势么?你是否认为我们需要新的语言?或者说你认为目前的语言是否够用?


      Gosling: 目前的语言的确不错。过去也曾出现一些编程语言,但是这些语言应用范围比较狭窄。比如Ruby 和 PHP非常适于生成网页。如果超过它的应用范围,就会很麻烦。对于企业应用来说,页面更象是实际应用的外表。大部分的脚本语言在高性能、大范围计算中的表现差强人意。
  
      您认为会影响企业IT的下一个重大技术创新可能是什么?
  
      Gosling: 现在有很多技术是关于多线程的。例如,摩尔法则的计算标准已然从时钟频率转变为内核数量。这意味着人们必须更多的理解建立多线程应用的意义。
  
      你认为微软还能继续保持他们的市场统治地位吗?
  
      Gosling: 微软在很长一段时间内统治着企业桌面系统市场,他们的确拥有统治权。说起来相当奇怪,即使每个人都在抱怨微软产品的安全问题,并且将防病毒产品升级到最新版本。我们为什么要使用需要防病毒软件的设备?我不理解为什么几乎人人都用Outlook。“严格来说我不是研究Vista的行家。但是它看起来的确让人厌烦。”
  
      你在开发时使用那些工具?
  
      Gosling: 我会交替使用Solaris 和 Mac OS X。这些系统是真正安全可靠的。他们不会掉链子。
  
      微软在桌面系统以外的市场上有什么优势?
  
      Gosling: 在其他市场上微软没有桌面系统市场上控制企业服务器的那种身手。过去几年中他们尝试利用在服务器空间中对桌面系统的垄断。取得了一些效果。
  
      你对Vista怎么看?
  
      Gosling: 我更愿意对微软(的软件)退避三舍,因为它们可能成为毒药。严格来说我不是研究Vista的行家。但是它看起来的确让人厌烦。Vista是如此的华而不实。花很大的价钱却买不到什么有价值的东西。