Java之父点评热门技术趋势 Java使云计算更简单

云计算 2009-04-16

Java之父点评热门技术趋势 Java使云计算更简单

记者:您在媒体面前不便对收购的事情做太多评论,这点我可以理解。不过,假设IBM对Sun的收购成了事实,您认为会不会有Sun的NetBeans和IBM的Eclipse合并的此类情况发生呢?

Gosling:当然可能了。我们双方在Java的旅途中已经合作了好几年。从很多方面来看(这次收购)对Java的进展而言是不会有太大影响的。现在而言(这次收购)只不过是一个比较吸引眼球的事件罢了。

记者:IBM和Sun看上去是十分不同的组织呢。

Gosling:企业文化上的冲突是一定存在的。我们比他们要更加奔放野性一些。我们从一堆嬉皮士中发展出来,头上还几乎插着鲜花。不过相比Sun刚刚起步的时候,我们现在已经是一个成熟很多的公司了,我们的成员组成也十分不同。我们现在是一个完善的企业软件公司。

记者:你在伦敦对开发者和合作者们谈了不少。可否问问你们讨论的主题是哪些?

Gosling:主题就是,现在有非常多发展中的技术。看看人们在用Java做什么,而Java又如何将他们联系起来――实在令人惊叹。我们看到了企业级平台的演变发展,同时在客户端――也就是我所为之负责的人群,以及根深蒂固的Java技术,这其中围绕富用户界面以及增进交流方面的开发工具有很多待开掘的宝地。

记者:您指的是JavaFX这个RIA(富网络应用)开发平台吧。能讲讲它的目标么。

Gosling:大意就是,令部署在Web上的应用有如桌面端应用一样,有架构上丰富的表现层,动画效果及行为。它包含了丰富的功能设施,API(应用程序界面)以及组件,同时也遵循正确的网络协议。

记者:相比Adobe Flash或微软Silvelight,这有哪些不同或更好的地方?

Gosling:主要的区别在于我们可以充分利用Java平台的所有性能。这使得开发者能够建立在网络端运行的功能强大的桌面端应用。Java架构对于减少延迟时间方面大有助益,因为你将更多的行为放在离用户更近的地方执行。

无论是高深的科教动画还是电子游戏,JavaFX都提供了很大发挥的潜力。NASA World Wind就是一个很好的例子(它可以让用户从卫星的高度放大俯瞰地球上的任意一点。这通过卫星摄影与雷达拓扑图融合生成地面地形的3D成像图而实现)。要知道,支持Java的设施数目超过百亿,其中包括三十亿台手机。

记者:Java中最持久的一个内容就在于它的虚拟机,这为它提供了“编写一次,到处执行”的能力。对于目前诸多供应厂商拥护虚拟化的举动您一定也很关注吧,尽管这和JVM的虚拟化不在一个层面上。

Gosling:JVM相对一个微软或VMware的虚拟机而言更加抽象。我使用Java虚拟机有几个原因。我们需要将很大范围的硬件虚拟化――不光是Mac,Unix,Linux和Windows,还有像手机甚至智能卡这样的设备。对计算的封装,转移,以及对不同设备的优化方法的需求,(都是我使用Java虚拟机的原因)。

记者:JVM对安全性也有帮助?

Gosling:是个,而且是安全性中重要的一个环节。虚拟机提供了我们可以强制实施的墙,而且还可以决定如何与其他虚拟机或计算群岛交流信息。

记者:是指“沙箱”么?

Gosling:是的。一个沙箱即使被弄得一团糟,也不会影响到其他的沙箱。安全管理员要么给你权限,要么不给你权限。为什么那些大银行都用Java做系统,正是因为他们需要绝对的信任。不过(JVM的安全性)不仅仅是沙箱,它还包括ID管理,加密安全随机数生成器等等。

记者:Sun最近也提出了云计算策略。Java在其中起到什么作用么?

Gosling:我们多年来一直在建造围绕云的工具。现在我们是第一次尝试提供这样的开放云,人们可以在上面做任何事。Java API使在云端工作相当简单。问题在于如何为公众提供访问权,如何收费,以及如何在那样的环境下验证。

记者:Sun的云平台会和亚马逊的EC2差不多么?

Gosling:从某种程度而言会和EC2差不多,不过它还会提供更高层次的服务。EC2基本上是原始数据存储和原始的计算能力。我们还将提供更高层次的设施。比如OpenOffice的最新版就涵盖了云存储的概念,你可以开始在云端存储文档树,而无须再依赖你自己的存储阵列。

记者:您仍然认为SOA是软件开发的正确方法么?

Gosling:我认为SOA是一种哲学,有如氧气一般:你天天呼吸它,你的生命依赖于它,但是你不会天天想到它。OO(面向对象)编程是SOA。很大程度上SOA也就是OO,而且是一个设计系统的很敏感的方法。不过我同时也是函数式编程的支持者(这是一个着重函数应用方面的编程模式,与着重状态变化的命令式编程相对应)。这是一系列的概念,很多开发者都感觉难以使用。

还有一个大难题就是如何让一组技能不同的人对项目做出同等的贡献。工程小组不再仅仅由工程师组成――你会发现小组由一个工程师和几个文科生组成。瀑布式流程(这种序列式流程需要一步一步走过开发中的每一个环节:构思,分析,设计到建造,测试以及维护)很不适合这样的小组,因为这意味着这些艺术家们将所有的活儿丢到墙那边的开发者头上。

记者:那么您认为敏捷是正确的方法?

Gosling:敏捷是一种哲学,这种哲学解决了很多问题,但问题可能是由于缺乏工具支持所导致的。标准工具普遍强制一种瀑布式模式,而说实话,瀑布式模式是十分糟糕的。

记者:Java现在完全是开源的。您是否仍然觉得您有职责引导它前进的方向?

相关推荐