阅读更多

15顶
1踩

非技术

今年Sun的JavaOne重点强调了JavaFX,这篇文章采访了访问Sun高级工程师 Amy Fowler,对于Swing, RIA and JavaFX给予了一些有意思的回答。

Amy Fowler picture


1。首先请介绍一下你自己。

我是Amy Fowler,我95年加入了Sun Java team,做了一年痛苦的AWT hacking之后,我开始做Swing,我差不多在Swing方面做了将近11年。

2。你现在的职位?以及你现在在
Java client group(Java客户端部门)中的职责?

我是Java client group中的高级工程师,虽然我有几年没有接触Swing代码,但是我依然觉得我是一个toolkit工程师。我最近发布了一个新的demo,可以看一下SwingSet3SwingSet3是一个开源项目,展示了Java 6 Update 10的最新功能。

3。JavaFX貌似将成为Client Java(Java客户端)的新方向。你对中间件公司和大型商业软件有什么建议吗?他们是否要转移到JavaFX上来?

在我和企业应用开发者合作的过程中,我感觉企业应用是一个比较传统的领域,对于迁移到新技术的应用有很大的抵触。所以,一开始谨慎一些是没有错的。但是使用新技术也是一种很大的乐趣,很多商业软件开发者经常以下基本问题头疼,比如管理大量数据的显示层,表单验证,实现动画图像节点等,这些能用JavaFX script简单实现,并且兼容整个Java平台,所有逻辑和结构无需任何改变。事实上,改变的只有GUI(用户界面),将大量业务逻辑隐藏在java系统内部,专注于GUI开发,能够提供更好的视觉组件。

4。JavaFX的目标用户是哪些?你能比较一下Swing开发者,RIA技术群(包括Flex/AIR/Silerlight),以及整个web社区吗?

这其实是两个问题,我们的目标用户分为普遍意义上的JavaFX用户 和 JavaFX Script语言用户。对于普遍意义上的JavaFX用户,我们的目标是专注在满足各个特殊团体的需求,对于RIA技术群来说,他们的抵制最少,因为如果JavaFX能够提供快速开发的能力,并且能很好的兼容java,在他们中普及应该相对容易。

从长期来讲,未来会有多少软件不是富客户端互联网应用呢?图像处理硬件方面发展迅速,能够提供能加丰富美丽的界面。Ben Galbraith在JavaOne演讲中就强调了现在用户体验已经上升到一个至关重要的高度。

但是你如何开发出丰富美丽的应用呢?我们相信JavaFX script能够良好的链接现存的设计工具(Photoshop, Illustrator等),让美工和开发者在一起完美配合,开发出优美的用户界面。

 

现在说说我们对于JavaFX Script语言用户。JavaFX Script语言和Java完全不一样,但是它的确非常棒。

对于定义视觉用户界面方面,它比java有以下优势:


I.declarative syntax语法定义,比XML简单清晰。

II.first-class functions for callbacks一级函数调用,不用再写匿名内部类anonymous inner classes

III.expression-based binding基于解释绑定,一旦使用,要手工查找是非常麻烦的

 

我必须承认,第一眼,我并不喜欢JavaFX,但是使用的越多,我越喜欢它。


5。有很多特性直接进入了JavaFX语言,比如binding绑定, animations动画, effects特效和retained painting保留绘画。而Swing的代码是非常容易debug调试的,然而要debug JavaFX代码需要IDE的支持,比如Eclipse, IDEA 和NetBeans等,对不对?

当然,IDE的支持非常重要,尤其JavaFX是一个全新的语法语言,包括一些特殊属性如binding绑定需要IDE的特殊debug支持。新的SDK将包括一个NetBeans插件,我相信IDEA和Eclipse也会在未来增加JavaFX插件支持。另外,我强烈推荐今年在JavaOne上发现的SwingExplorer ,能够可视化调试Swing。


6。我们没有看到很多成熟和专业的第三方Swing组件,尤其和Delphi,.NET甚至Flex相比,你觉得这是什么原因呢?

是的,和其他框架比,我们是没有很多第三方组件,但是我们依然有一些优秀的组件:JIDE (David Qiao) , JGoodies (Karsten Lentzsch)等。还有 SwingLabs,这是一个优秀的扩展组件包。

Swing主要由于是在90年底末期发布的,那个时候JSP和web应用已经成为主流,开发者意识到单一应用并不是跑在每个页面或者浏览器上。

7。近期,许多JVM语言(比如Groovy, JRuby, Scala and Jython)都使用Swing作为“UI视觉引擎”,和动态语言一起使用,开发用户界面,这是不是就是Swing的未来?

由于这次JavaOne强势推出JavaFX,很多人担心Swing会不会被放弃,未来所有的客户端效果都会用JavaFX来完成?答案是否定的。我们意识到,一个工具只能解决一个方面的问题,而且我们每一步的发展都是基于以前的成果。SceneGraph让我们集成了2D和3D,美丽和动画,成为一个稳定成熟的GUI工具包。

8。你认为Swing的缺点是什么?JavaFX是如何弥补这些缺点的呢?

有两个重要的Swing弱点被JavaFX解决:

I.如果你用Swing写代码,你有点象水管工人。Swing比较复杂,来解决所有UI方面的结构问题。但是,JavaFX script属性(declarative syntax, binding, functions),能够流线组装GUI界面。

II.Swing组件并没有存在2D座标系统中,要作出完美的动画需要很高的技巧,而在JavaFX中新的SceneGraph API能够很轻松提供炫酷的动画GUIs。

9。你还有其他的关于Swing的内容要告诉我们吗?

JavaOne是努力展示最新最sexy的技术,但是对于我来说,我更关心Java 6 update 10的更新。比如:

* Java Kernel
* Next Generation Java Plugin
* Deployment Toolkit
* Nimbus Look and Feel
* Java Quick Starter
* More graphics acceleration for Java2D
* Shaped and translucent toplevel windows

详细可以看看:Java6 Update10 Overview

 

15
1
评论 共 5 条 请登录后发表评论
5 楼 aishame 2008-06-06 14:15
引用
Amy Fowler居然是个女的!了不起!

呵呵,     
4 楼 番茄有益 2008-05-28 14:19
鼎鼎大名的Amy--          
3 楼 mkclawhammer 2008-05-28 12:58
Amy Fowler居然是个女的!了不起!
2 楼 Eastsun 2008-05-27 17:23
虽然不太看好JavaFX,不过还是蛮希望JavaFX能够流行起来
1 楼 QQbyte 2008-05-27 14:50
感觉RIA取代简单文本HTML至少还需要2-5年,为什么呢?互联网主要是传递信息的,对于界面的要求并不会那么高,华丽的界面也许对于游戏有优势。

至于JavaFX要流行也许需要更多时间。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Sunstudio C用户指南

    Sunstudio C用户指南.pdf PDF格式阅读

  • Sunstudio12安装步骤

    Sunstudio12安装步骤 Sunstudio12

  • 开发工具Android ADT和Android Studio

    开发环境及开发工具 一、开发环境变量的配置 不管是使用Eclipse ADT还是Android Studio进行开发,都需要配置环境变量。首先,我们了解一下需要配置的环境变量及其作用。 PATH环境变量:作用是指定命令(javac/java/javadoc等)搜索路径,在命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们...

  • DevEco Studio开发工具下载、安装(HarmonyOS开发)_For Mac

    HarmonyOS开发:DevEco Studio开发工具下载、安装

  • OpenSolaris构建C/C++开发环境

    一Sun Studio  简介     Sun Studio 是 Solaris/OpenSolaris 操作系统上的首选开发环境。它包含并优化了 C 、 C++ 及 Fortran 编译器,而且融入了业界领先的 IDE 和性能调试技术。随着软硬件技术发展关系的调整,开发多处理器和多线程应用的重要性正日益突出,而 Sun Studio在开发多线程程序(尤其是在 Sun 平台上)方面同样表现出了卓越

  • Sun发布更精简开发工具Java Studio Creator

    Sun、微软为了扩大开发者用户群,分别推出小型应用程序的开发工具。    Java及.Net 两大开发阵营龙头──Sun和微软,分别于最近发布更精简、纯粹用以开发小型应用程序的工具。     Sun 在开发者大会JavaOne 上宣布之前代号为“Rave”的Java Studio Creator.之前Sun也有JSP、Java Servlet等Web 开发工具,但仍然需要一定技术能力,而Java 

  • sun studio用于Linux下的集成开发工具文档

    sun studio用于Linux下的集成开发工具 sun studio用于Linux下的集成开发工具

  • IDE打断点小技巧

    调试代码的时候如果某次循环报错需要调试的时候,循环里面打了断点需要一遍一遍的进入比较麻烦。 public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("a"); list.add("b"); list.add("c"); list.add("d"); list.add("e"); list.add("f"); list.add("g"); f

  • eclipse、idea安装lombok插件

    一:在开发工具中安装插件: Eclipse:   下载地址:https://projectlombok.org/download   将下载的lombok.jar文件,放到eclipse安装路径,该jar包也就是lombok插件的jar文件了   打开eclipse.ini文件,添加如下内容:     -javaagent:lombok.jar     -Xbootclasspath/...

  • sun java ide_新手下载安装Java IDE - Eclipse

    Eclipse是著名的开源集成开发环境(IDE),主要用于Java应用开发。官网下载Eclipse其实有挺多坑的,打开下载页 http://www.eclipse.org/downloads/ 可以看到当前最新发布版是Eclipse Oxygen,注意不要直接点醒目的下载按钮(那个是在线安装器),要点灰灰的Download Pacakgeseclipse01.png接下来要选择Eclipse ID...

  • DSP程序 调试总结

    原文地址:调试总结">DSP程序 调试总结作者:fanaishen1.warning: entry point symbol _c_int00 undefined 使用C写DSP时,在rts.lib库中定义了入口地址:_c_int00 而使用汇编语言编程,就不用包括rts.lib库,所以入口地址及其标号可以由人工指定。而使用C时,就不同了,必须从rts.lib定义的这个入口_c_int00入口,是

  • Sun公司Forte for Java IDE获奖

    google_ad_client = "pub-8800625213955058";/* 336x280, 创建于 07-11-21 */google_ad_slot = "0989131976";google_ad_width = 336;google_ad_height = 280;//<script type="text/java

  • 为什么java世界没有真正的快速开发平台

         为什么java世界没有像微软的visual studio那样的快速开发平台,其中一个原因固然是因为微软封装了很多东西,提供了强大的集成工具并且要求你按照微软的设计思路来设计系统,但是 java世界具备visual studio中的任何一种组件,所缺少的只是没有人或者厂商将他们集成起来,而之所以没有人去做,一个很大的原因恐怕是java里面每种组件我们都有太多的选择,web框架有struts

  • 申请的Sun的开发工具大全DVD今天到手了

    总算等到到家。DVD制作风格很不错,一个html页面做导航,蛮实用的,又给我的硬盘节约了一点地方。今天把另外一台台式机上的很多东西整理到DVD上了,现在有了几十G空间,装了GSX,可以爽爽了,计划内的任务是Small Business Server2003,另外就是2000server,还有2003server+exchange2003+office2003+projectserver 2003+...

  • 基于Eclipse的TI集成开发环境IDE-CCSv5使用教程

    TI嵌入式处理器的集成开发环境(IDE)包括调试器,编译器,编辑器,DSP/BIOS操作系统等等,现在最新的CCSv5 IDE基于Eclipse开源软件框架(v4+)并融合了TI设备的支持与功能,适用于windows和linux环境下开发,CCSv5是基于原版的 Eclipse,并且TI将直接向开源社区提交改进,用户可以随意的将各种其他厂商的Eclipse插件或TI的工具拖放到现有的Eclip...

  • 谁在励你的志?

    《怎样给猎狗分骨头》(How To Assign Bones To Hunting Dogs)、《拒绝借口》(No Excuses)、《人性的弱点》、《人性的优点》、《最伟大的管理思想》……我一次又一次地看到别人拿这些书来励志,拿这些畅销书中的观点来教育我。这些全球畅销的、大师所作的励志书,它们真的有像它们自己所宣传的那么辉煌的背景吗?如果这些背景——xx大师所作、全球销量xxxx册——都是骗人,

  • 目击凶案——JDO 2.0投票结果点评

    (本文将发表于《程序员》2005年第2期)就像电影里的老套路,我今天要说:“我有一个好消息,也有一个坏消息。”好消息是AspectJ和AspectWerkz合并了。这两家都是业界重要的开源AOP实现,不过走了不同的技术路线:AspectJ一直坚持“预编译+源码生成”,AspectWerkz则是“元数据+运行时织入”的代表。关于两种技术路线、两种产品的争论一直是AOP社群的热点话题,如今两个开源

Global site tag (gtag.js) - Google Analytics