`
lgx522
  • 浏览: 125800 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

借JavaFX之风,Swing终于熬到了出头之日

    博客分类:
  • Java
阅读更多
前几天看了点新闻,一是说JavaFX1.0的推出,二是是说Sun停止了对SwingX的资助,由此激怒了社区。
由此一些人推论Sun已经全力押宝JavaFX,Swing将沦为鸡肋。而后Sun的高管自然出面表态,Swing和JavaFX两手都要硬。

由于本人一直从事企业信息系统的管理和研发,平日对Swing还是多有涉猎,看到这些传闻不免要探个究竟。其实最近忙于管理工作,技术上已多日不熟了。于是下载了NetBeans6.5 JavaFX版,顺便装了个JDK1.6 update11,这一试却是大获惊喜,同时对Sun的JavaFX策略深感怀疑。

惊喜在于经过多年的等待和失望,Swing居然真正快了起来,启动速度几乎提高了一倍以上。这对于Swing的爱好者们无异打了一针鸡血!老实说,Swing一直以来是设计精品、性能垃圾,从Applet时代开始,大家就一直是恨铁不成钢,期待了很多年了,直到期待到绝望。以至于本人怀疑Swing的性能也“只能如此了”。于是大家才会去折腾设计上莫名其妙的Swt,才会毅然决然地把Applet扔到一边,硬啃代码丑陋的Flex。经过多年的批判,很多初学者早已习惯把“Swing很烂”当做公理。其实经过多年发展和实践,Swing的架构设计是超优秀,跨平台也是目前最完善的,“慢”才是Swing的真正硬伤。可惜Sun一直对这个问题视而不见,才导致了这种明珠暗藏的局面。

也许Sun还是要靠买高端的服务器挣钱吧,所以从来对“慢”这个问题相当麻木。以至于众多从Java时代成长起来的程序员已经逐渐习惯了“慢”,甚至找出各种借口说“慢”已经不是问题。结果如何呢,EJB渐成笑柄,而Swing这种超经典GUI(除MS的各大系统级厂商由于要跨平台,故Swing是GUI首选)总是令人不满,根本性的问题其实还是“慢”,这甚至让爱好者都难于启齿。与之相对的是,MS恰恰是最重视“ 快、慢”问题的,君不见Windows的GUI就是快,MS的软件上手也是快,随之是滚滚而来的钞票。等Vista一“慢”,连MS都不好使了,大家不买帐了。所以对于用户而言,“使用快”永远是个硬道理。其实对于程序员而言,“开发快”也永远是个硬道理,只不过在这方面是相对的,面对不同规模和生命周期的系统,各种技术是难有定论的。几经折腾,笔者还是坚守中庸主义的Java。

这几年RIA之风日渐疯狂,人们早起习惯大谈Flex、 Ajax,甚至新出炉的SliverLight,全然忘记了Java起家时的Applet在十多年前早已是RIA的先行者。作为后起之秀的Flex强在哪里,其实最主要是“快”,运行快、安装快、开发快。或许迟钝的Sun终于感到了耻辱,才开始下决心解决这个“慢”的问题。NetBeans的GUI设计器算是解决了开发“慢”的问题,更重要的是JRE update10之后终于可以让爱好者享受一下不输于winform和swt的速度感了。以Swing经典的架构设计、完善的跨平台特性,优秀的可扩展性,笔者实在找不到不用Swing的理由了。以现在而论,针对Internet的JavaFX尚不完善(连NetBeans都不能可视化设计,且标记化的语言实在是够乱的),大家不必胡乱跟风。但企业应用则可以好好考虑一下JApplet或者Swing Application,与其死磕乱糟糟的JS和Flex(对于习惯了Java的程序员来说),不如享受一下All in Java的乐趣。
分享到:
评论
25 楼 魔兽精神 2008-12-18  
swing 的 jtable 实在是不好用...
不知道有没有不改原码的解决方案?
24 楼 xbmujfly 2008-12-18  
个人也赞同LZ的观点,Swing更符合OO和设计模式,所以更加适合专业级的人员,我个人觉得SWT和Swing没有可比性,SWT和WinFORM比较还比较合适!个人愚见!
23 楼 showtime520 2008-12-18  
farmer_chs 写道
如果能像flexbuilder那样方便地开发javafx界面的话,我还是想试试javafx


希望sun大神不会让我们再次失望
22 楼 farmer_chs 2008-12-18  
如果能像flexbuilder那样方便地开发javafx界面的话,我还是想试试javafx
21 楼 d_eye 2008-12-18  
jvincent 写道
Swing到底是快还是慢,关键是看掌握到什么程度,国外有很多Swing的应用,甚至在电力监控领域.
另外Applet的富客户端应用还是很有吸引力的...

说的是.
20 楼 leiv 2008-12-18  
Java Fx速度真不是一般的慢,而且看它那个demo的时候浏览器死了两次还没看完。Flex也没有你说的这么不堪吧,Android和Flex用的这种XML语法我还挺喜欢的。
19 楼 shiren1118 2008-12-18  
我觉得GWT还是不错的,和Swing思路一样


不知道大家用没用过netbeans的uml,非常的不错,nb就是swing做的,好像intelJ也是
18 楼 icefire 2008-12-18  
看来我也该升级倒JDK6U11了!
一直喜欢Swing,可惜……工作是做WEB的。。
17 楼 fkpwolf 2008-12-18  
用过两个UML建模工具:together,magicdraw,都是swing做的,界面沉稳大气,对图形图像的处理能力很强
16 楼 rehte 2008-12-18  
skzr.org 写道
我一直觉得Swing很有前途,可一直没有机会做这部分的工作,我们公司原来有一套产品使用Swing开发的,呵呵,羡慕ing,现在致力于eclipse的研究中

其实悲哀的是,我的工作不是做Swing的,我是做基于Eclipse平台的IDE开发的。研究Swing只是我的业余爱好,做Swing界面设计工具也是我利用业余时间做的。我只是希望Swing这个优秀的界面技术不要被时间埋没。看来目前国内Swing的市场实在太小了,光从JavaEye上讨论Swing的话题和热度来看都非常少。
15 楼 skzr.org 2008-12-18  
rehte 写道
本人多年来一直力挺Swing,死不悔改,至今仍想为Swing的普及做努力,我为Ecipse平台开发了一款类似于NetBeans界面设计工具的插件,虽然目前稳定和质量上不是太好,但是功能上已经相当好用了,可以用来替换VE了,这款工具在:
http://code.google.com/p/visualswing4eclipse/
我在JavaEye写了一篇文章介绍:
http://www.iteye.com/topic/208787
在EclipseZone也写了篇文章介绍:
http://eclipse.dzone.com/announcements/visual-swing-designer-eclipse
都获得不少好评。
另外现在的Swing绝对不是你想象丑、慢、功能弱,真是和开发者对于Swing的掌握程度有关,我写过一些博客介绍Swing技术,虽然已经很长时间不更新了,但是我觉得有助于消除大家对于Swing的偏见:
http://blog.sina.com.cn/swingjava
http://blogs.sun.com/swing
但是可惜的是,很少Java开发者关注使用Swing开发,尤其是国内,尽管现在的Swing的已经今非昔比了,这真是让人心寒。
希望大家回头看一下现在的Swing,尤其是Java 6 Update 10之后的Swing,配合NetBeans的界面设计工具,或者Eclispe上的界面设计工具(包括我的),看一看,给Swing和Applet技术再一次的机会,绝对会让你惊喜的。


我一直觉得Swing很有前途,可一直没有机会做这部分的工作,我们公司原来有一套产品使用Swing开发的,呵呵,羡慕ing,现在致力于eclipse的研究中
14 楼 flypeace 2008-12-18  
用swing开发已经3年了,还在一直用,有的系统也一直在用applet,而且是大的交易系统.
13 楼 beingchou 2008-12-18  
感觉JAVAFX的画面还是不怎么精美。。。
12 楼 rehte 2008-12-18  
ray_linn 写道
所谓的速度快了,也同时意味着耗更多内存了。说实话,以java的内存消耗,写gui真没优势,开3-4个swing应用,大概就要报内存不足了。

OSGi技术可以通过共享虚拟机的方式解决这个问题,另外新的Java版本也包括新的模块发布模式,使得多个Java程序可以共享一个虚拟机。未来的Java可能发布MVM,可以从虚拟机层面解决多个Java应用共享一个虚拟机的问题。
另外,Swing的速度快了并不是以内存消耗为代价的,它是算法优化、虚拟机速度提升以及多种其它技术提升综合作用的结果。其实Swing应用比非GUI Java应用平均只多10M左右。
11 楼 ray_linn 2008-12-18  
所谓的速度快了,也同时意味着耗更多内存了。说实话,以java的内存消耗,写gui真没优势,开3-4个swing应用,大概就要报内存不足了。

10 楼 lgx522 2008-12-18  
you_meng 写道
不在于我用不用,在于我的公司用不用而已


公司用不用是由客户的需求和技术风潮决定的。
一项技术,开始是有人宣传和鼓吹,然后经过大家的多次实践,如果确实是好的,就会逐渐形成风潮,然后影响客户的要求和公司的决策。

想当年的Spring就是这样逐渐成为标准的。
总之是实践出真知。
9 楼 xiaoyu 2008-12-18  
我也是支持Swing的, 什么不好搞, 又多一个javaFX, 语法也怪怪的。

唉, 可怜年龄大了, 适应不了新东西了。
8 楼 you_meng 2008-12-17  
不在于我用不用,在于我的公司用不用而已
7 楼 huangshuhong 2008-12-17  
Swing确实是好东西~一直在弄
6 楼 rehte 2008-12-17  
本人多年来一直力挺Swing,死不悔改,至今仍想为Swing的普及做努力,我为Ecipse平台开发了一款类似于NetBeans界面设计工具的插件,虽然目前稳定和质量上不是太好,但是功能上已经相当好用了,可以用来替换VE了,这款工具在:
http://code.google.com/p/visualswing4eclipse/
我在JavaEye写了一篇文章介绍:
http://www.iteye.com/topic/208787
在EclipseZone也写了篇文章介绍:
http://eclipse.dzone.com/announcements/visual-swing-designer-eclipse
都获得不少好评。
另外现在的Swing绝对不是你想象丑、慢、功能弱,真是和开发者对于Swing的掌握程度有关,我写过一些博客介绍Swing技术,虽然已经很长时间不更新了,但是我觉得有助于消除大家对于Swing的偏见:
http://blog.sina.com.cn/swingjava
http://blogs.sun.com/swing
但是可惜的是,很少Java开发者关注使用Swing开发,尤其是国内,尽管现在的Swing的已经今非昔比了,这真是让人心寒。
希望大家回头看一下现在的Swing,尤其是Java 6 Update 10之后的Swing,配合NetBeans的界面设计工具,或者Eclispe上的界面设计工具(包括我的),看一看,给Swing和Applet技术再一次的机会,绝对会让你惊喜的。

相关推荐

Global site tag (gtag.js) - Google Analytics