InfoQ

新闻

视频:Bruce Johnson谈Google Web Toolkit

作者 Ryan Slobojan译者 沙晓兰 发布于 2008年3月6日 上午10时1分

社区
Java
主题
编译器,
开放源代码,
JavaScript,
Web框架,
代码分析
标签
GWT

Google Web Toolkit (GWT)的技术领导Bruce Johnson谈论了关于GWT的整体设计,GWT如何将Java转换成Javascript,与GWT相关的社团,GWT 1.4版本中的新性能,以及GWT背后的哲学等话题。

观看视频:访谈:Bruce Johnson谈Google Web Toolkit (11 分钟).

以下精彩内容摘录自访谈:

我猜想人们的第一印象也许会是:“这是个某种意义上的翻译器”。在看到表层之下它究竟如何工作以后,他们会发现这样的印象就有点小觑了这项技术。他们设想我们只是以某种方式盲目地将一个特定的Java结构翻译成JavaScript,以致于会产生冗余代码等一些问题。实际上,我们采用一种更计算机科学、更强有力的方式,那就是,我们将所有的Java源码聚合做语法解析,在此基础上再做优化处理。我们有目的地禁止反射机制和动态类加载。这样做的好处在于,在知道所有源码都可以通过编译器进行分析的前提下,你可以对程序作整体优化。反射机制会影响完全静态分析的实现,因为在运行时之前,你永远都没有办法知道会发生什么。但如果你剃掉了这个因素,你可以编译一个巨大的Java源码库,并且如果你将整个源码库作为一个整体编译,你甚至可以分析每一处调用,每一个方法的具体实现。

你可以鉴别出那些看似多态性实际上却不是的部分,我们将它们称为“type tightening”。一旦作了type tightening,其实就已经消除了多态机制,并且一旦重写调用点并将多态分派翻译至静态分派,你就可以内联源码,这样做允许你迭代另外的优化处理。所以说它是真真实实的编译器,我刚才提到的优化实在只是冰山一角,在未来我们将可以做更多更酷的优化。GWT使用者得到的好处是,他们所需要做的只是升级 GWT版本,重新编译而已,他们将在文件大小或速度或两者同时获得巨益。比如在即将发布的GWT1.4中,一个简单的重编译可以将文件大小减小20%并能够更快地启动。

没有回复

回复

独家内容

Tapestry for Nonbelievers

I. Drobiazko和R. Zubairov合作撰写了一篇文章,详细介绍Apache Tapestry 版本5——一个面向组件web框架。文章向读者展示了创建组件方法,并谈到了Tapestry中的IoC以及Ajax的相关特性。

ESB拓扑方案

在本文中,Adrien Louis讨论了两种基于ESB的SOA拓扑方案的优缺点:单个公司级ESB vs. 彼此互联的“部门级”ESB系统。Adrien讨论了每种方案对管理、业务监测、治理、可靠性和编配等问题的影响。

毛新生谈Project Zero和软件新发展

InfoQ中文站有幸与IBM中国开发中心Web 2.0首席架构师毛新生聊了聊Project Zero和软件新发展的相关话题,其中包括Project Zero的组织形式、支持的语言、以及未来发展方向等等。

Google图表及gchartrb初探

Google图表是一项用于生成图表的Web服务。这篇文章详细介绍了Google图表的接口以及可以允许Ruby方便创建图表的gchartrb库。

使用Erlang和Yaws开发REST式的服务

在这篇文章中,Steve Vinoski解释了如何用Erlang和Yaws Web服务器创建REST式Web服务。

Segundo Velasquez与客户眼中的敏捷

在某个软件产品设计的初始阶段,Segundo Velasquez曾以客户的身份与一个敏捷团队共同工作;Deborah Hartmann就这段经历对他进行了采访。

开放平台技术架构剖析

本视频从互联网的分类讲起,介绍了开放平台的类型、开放的价值以及开放平台对开发者的机会和挑战。然后以雅虎的NCP开放平台为例,讲解了NCP的特点、基本架构和具体的开发过程。

用UML做好系统分析

使用UML如何能让我们做好系统分析的工作呢?就让我们通过基金模拟项目,先睹为快,抢先体验一番。 本文节选自《系统分析师UML实务手册》的第二章。