您的位置: 新闻频道 Java新闻

原创新闻 你看好Java桌面吗?

2008-07-22 by 见习编辑 Eastsun
评论(48) 有8509人浏览 java awt applet swing javafx
  提到Desktop Java,不得不说这是Java开发之痛。从一开始引入JAVA平台的AWT(Abstract Windowing Toolkit)“一次编译,到处调试”给人留下了很糟糕的印象;在Java1.2加入的Swing后,虽然解决了AWT中的很多问题,但似乎也没让人对其产生多少好感,而且普遍认为Swing的速度慢,开发效率低下。
  不过最近几年SUN又开始大力支持Desktop Java的发展,从Java6中加入诸多Desktop Java新特性,以及对Swing性能有了很大的提高;并且特别针对Desktop Java创造了一个新的语言JavaFX……
  这一切,是否能改变Desktop Java的命运呢?
  最近,《Thinging in Java》的作者 Bruce Eckel 在其博客上发表了一篇题为:Does Anyone Really Care About Desktop Java? 文章。他认为,Desktop Java从设计之初到现在一直走在错误的路线上:
引用
  The history of Java UI is littered with disastrous decisions, starting with the AWT (Abstract Windowing Toolkit), which was created at the last second, because (no surprise) the language designers hadn't considered UI as an important paradigm for Java. Rumor has it that AWT was one month from conception to completion, which certainly fits. The results of AWT -- buggy and equally mediocre on all platforms -- destroyed everyone's faith in Java UI, for so long that Swing, which has been baking for years and years, is only just getting back some of the lost mojo. Users, who have a long memory of first impressions, still equate Java with crappy user interfaces, so to them the steaming coffee cup looks like something else that steams.

  此文发出后,在论坛上引起强烈的反响。支持者不少,强烈反对的也很多。你是否认同他的观点呢?

来自:http://www.artima.com

评论 共 48 条 发表评论

xuyao 2008-08-25 10:02
我觉得只要是写出有用的软件,都不错,java写桌面程序也不是不可以,谁说java一定要写bs
eserver220 2008-08-20 16:30
我看好JAVA DESKTOP. 不是因为SWING/SWT的功能怎样。 而是因为

Java作为排名第一编程语言,会有大量的潜在程序员会使用JAVA的桌面开发。

还有一个原因是目前BORLAND的退出IDE市场。微软阵营的开发如果采用VC++,

会面临 MFC/.NET 2.0/.NET3.0 等多个API。其实,采用微软VC++进行桌面

开发的最大障碍就是目前其技术变化太快。

而J2SE吸引人的地方除了其本身外,支持J2EE/J2ME的广阔市场,也是

目前JAVA就业培训班“火”的原因。
evancess 2008-08-16 11:01
比较喜欢 flex
servlet 2008-08-08 16:29
java的强项就不在桌面,它的那个ActionListener事件侦听类,和一些个组件侦听类,必须已内部类和匿名类的形式实现,那么岂不是一个事件类,就会是如此的巨大,每当程序出现bug时,一个类,就可以将程序员看的焦头烂额。

试问如果一个类,有2M或3M。那有多少行。
fxbird 2008-07-27 14:05
我以多次使用swing的经验来看,swing使用起来很麻烦,很多在其它语言中很平常的功能都没有,比如说jlist就没有一个阻止行焦点改变的监听器,很多时候不得不看jdk的代码去学一点东西,而且源代码中还调用了一些jdk源码中没有的类,比如SwingUtils2.
icewubin 2008-07-24 22:51
Java的GUI编程模型还可以,只是在桌面这一块的工作做的不够
一些界面模型也抽象的不够好,比如treetable,官方的例子,几乎是用一种hack的方式实现的。最近在看了一下Qt的编程模型,跟java很相似,也借鉴了一些java的概念,但确实比java专业多了


这仅仅说明Java缺少一个较好的UI库,仅此而已吧,JavaFX也是为了解决这个问题的。例如Swing没有坐标的概念,做动画就非常困难,用JavaFX就很简单了。JavaFX也可以做桌面应用的。
codekook 2008-07-24 22:29
Java的GUI编程模型还可以,只是在桌面这一块的工作做的不够
一些界面模型也抽象的不够好,比如treetable,官方的例子,几乎是用一种hack的方式实现的。最近在看了一下Qt的编程模型,跟java很相似,也借鉴了一些java的概念,但确实比java专业多了
Allen 2008-07-24 22:28
RCP的似乎也是很多大型企业押宝的一个方向。

现在大家似乎都觉得是时候恢复桌面应用的光辉岁月了,但是桌面应用到底会以怎样的面目回归,却没人有把握断定。
鹤惊昆仑 2008-07-24 13:21
Qt是老大
Eastsun 2008-07-24 12:59
刚才看了下原文的回帖,其中 Rob Ross 的回复很有意思:
引用
The title was clearly designed to be provocative, presumably to increase the number of eyeballs viewing this article and thus increase ad revenue.

他认为该文属于“标题党”,是为了吸引眼球增加网站的点击量从而提高网站的广告收益。
看来,外国也有“标题党”一说,不过貌似没有像中国一样有个专有名词来形容。
icewubin 2008-07-24 09:22
昨晚看了详细介绍,Java Swing已经开始对DirectX进行调用以提高性能,包括3D的调用。还有OpenGL的硬件加速的支持也已经开始。

还有个大问题就是,安全性,SL目前还没暴出什么漏洞,但是只要SLR暴出漏洞,SL逃也逃不掉。现在Flash病毒已经开始满天飞了,如果Adobe应对不力,一般客户封杀flash,形势马上就会对Adobe极为不利。
icewubin 2008-07-24 09:18
引用
取决于客户端的部署优势
去除linux,在windows平台,应该
sl>flex>javafx
当年的applet就是一个例子


以目前的下载量,结合当年(2000年)的网速来看,SL和Flex在当年推出都是一个下场。
supercode 2008-07-24 09:14
取决于客户端的部署优势
去除linux,在windows平台,应该
sl>flex>javafx
当年的applet就是一个例子
geminiyellow 2008-07-24 08:44
加油加油,兄弟们加油啊
chanball 2008-07-23 23:57
有sun做后盾,总有一天Desktop Java会出头的
cph8066 2008-07-23 23:48
我反而比较看好Flex,在UI方面与用户视觉感受方面,Flex是没得说的,现在是老大,但Flex确实在某些方面对比JavaGUI有些不足,在于运行效率方面,安全性等等。Flex是基于Flash的,走了这么多年,在Macromedia时代就很出色了,嫁给Adobe后更有飞跃的势头,跟本无视MS的SL,在前端UI主面,流媒体方面,网络交互方面都慢慢成熟强大了。虽然Java也可以追赶,但在追赶的同时,别人也在上进,我想信Adobe的能力,自从AIR的发布,就更可看出Adobe的决心了!而ActionScript3才刚刚冒起,还有很大的改进空间,还有FlashPlayer在硬件方面的支持与性能优化都有很大的空间,我相信Adobe也清楚这点,所以我很有信心未来的前端技术将会是Flex的天下!
icewubin 2008-07-23 22:17
引用

4.硬件加速的支持,引进了一个完整的基于微软的Direct3D 9 api的硬件加速图形通道(hardware accelerated graphics pipeline),使得swing应用添加了半透明,不规则图形等特性和其他先进的2d特性。


个人认为这个很强,如果能加快3D的硬件调用,就暴强了。
caoyi1983 2008-07-23 21:59
java 6 update 10,以前称为java 6 update n 包含了一些为增强用户用户体验而增加的新面貌:
1.增强的java安装体验,用户不必下载完整的jre,只需要下载一个内核就可以满足大部分applet/application的需要。其他需要的类库可以由内核在用到的时候再下载。这种安装机制使用户启动和运行java应用的速度显著提高。
2.jre的更新也变得更快、更可靠,更新的版本将不再在Windows的“添加或删除程序”中被列为单独项目。
3.快速启动,在启动计算机时将预先把jre的一部分缓存到内存中,可以很大的提高jre的启动速度。
4.硬件加速的支持,引进了一个完整的基于微软的Direct3D 9 api的硬件加速图形通道(hardware accelerated graphics pipeline),使得swing应用添加了半透明,不规则图形等特性和其他先进的2d特性。
5.一个新的跨平台的外观(lookandfeel),代号为nimbus。对'Metal' 和'Ocean'外观进行了更新。
6.下一代Java插件,改进了java插件的可靠性,并对applet提供长期的支持,能够指定java堆的大小,能够选择为特定的applet选择不同版本的jre。改进与javascript的互操作性,在vista上更好的支持applet的签名。
7.统一的浏览器和桌面体验,新的可拖动的功能,你可以从浏览器拖动applet到你的桌面上,同时程序继续运行。同时拖动会创建一个快捷方式,快捷方式依赖Java Web Start技术运行,并允许用户不打开浏览器来运行applet。
香克斯 2008-07-23 21:22
我更喜欢python来写,呵呵.
足够简单强大跨平台
sp42 2008-07-23 19:35
都是大公司、大财团的玩物
只有ajax是非营利性组织的技术,
好处是 十年 才更新一次 ,不用老绕着大款转啊

发表评论

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