关于swt的一个帖子,你们看看是这样么...

loki_lan 发布于 2013/05/13 10:59
阅读 247
收藏 0
SWT
SWT从实质上说是头疼医头,脚疼医脚,这种本质决定的它的架构不好,当需求增加时,当面临现实的Customization时,当面临各种不同操作系统时,它的缺点就暴露出来了,简单的说:
         对Java 界面涉及不深的人往往偏好SWT,对Java界面设计非常熟悉才能真正洞悉Swing的内涵。人们对于SWT的喜爱是同他对SWT的了解深刻度成反比的, Swing恰好相反。对于SWT了解越浅的人,越对他的光鲜外表(主要是Eclipse的表现比较好,但毕竟Eclipse的漂亮程度归公于他的界面设计艺术,实质并不在SWT的高级)。随着开发者对于SWT的深入了解,就会发现越来越多的问题和局限性,了解不深的人,或者从传统C/C++, WinForm以及MFC等东东转过了的人,往往被SWT的表面所迷惑。可以不客气的说SWT是AWT早已抛弃的努力。
         SWT凭着它对Windows平台的优化迷惑很多人,又以它的编程简单性忽悠了很多人。其实SWT它在Linux的效率和Mac OS上的错误简直要让人发疯。如果你真的想需要Windows平台的界面,干嘛要用Java? C#岂不是更好?
         SWT 一个迷惑人的地方是所谓平台保真(Fidelity),其实这也造成它不能轻易扩展和Customization的根源,而且,开发者往往喜欢平台保真的界面,而用户却不一定,相当的用户最终喜欢WinAMP等类似可以更换皮肤和LookAndFeel的功能。即使是平台保真度,Java6已经完完全全的实现平台一致性。SWT已经没有优势可言。
        SWT的另一个迷惑人的地方就是所谓速度,人们往往认为本地组件就比模拟组件要快,其实不然,由于 Java虚拟机和运行时速度的提高,Java编写的程序已经可以与C的速度相媲美,加上Swing内在有虚拟机内嵌代码和热编译的等功能支持,Java实现的Swing代码已经和操作系统本身的组件没有什么两样了。最近有JavaLobby上论坛贴出了一个名字叫MiGLayout,关于测试GUI界面的 BenchMark,测试的结果是:
         Windows平台上Swing的启动速度稍慢于SWT,运行速度几乎一样。
         Linux平台上Swing的速度高于SWT,无论是启动速度还是运行速度。GTK2上的速度差别就更大。
        MacOS上Swing的速度高于SWT,无论是启动速度还是运行速度。
        IBM当时开发Eclipse时,Swing的确不争气,所以才有了SWT的出现,但是如果当时Sun就把Swing打磨成现在这个样子,估计IBM也不会轻易开发SWT,但也多亏SWT的出现,促使Sun将Swing进行改革。
         最近一个国外叫EvansData的咨询公司调查的GUI工具结果是:
    swing占有率47%,名列第一,WinForm名列第二,SWT不超过8%
         结论是:
         SWT不会消亡,因为有Eclipse的存在,如果想为它开发插件,就必须使用SWT。另外和AWT相似,SWT可以应用到Mobile开发界面上,因为Swing毕竟太大了。
         Swing因为Java5和6的推动将席卷Java Desktop市场。
         毕竟任何的东西的存在都是合理,存在即合理,合理就不可能消逝。80/20的关系。
 
         对我的话持怀疑态度的人,尤其是Swing的速度可以去看看JavaLobby的这个帖子:
http://www.javalobby.org/java/forums/t78884.html
         如果对Swing占有市场率有怀疑的人可以去看看这条新闻:

http://www.clientjava.com/blog/2005/10/18/1129665205787.html

原文:http://blog.sina.com.cn/s/blog_4b6047bc010006r1.html

问题:真的和他说的这样吗?

加载中
0
xoHome
xoHome
臭鸡蛋中挑好地吧,想快速开发工具,SWT没话说,长久开发就算了
0
铂金小鸟
铂金小鸟
Swing还是很不错的.
0
Monkey
Monkey
swt是活在eclipse的世界中,离开了eclipseRCP就不给力。swing这个货值得一学,会了这个你就差不多领悟到mvc的真谛了,最起码你的java基础没问题了。还有就是只要你会这个,android就是看看demo就开搞的。
返回顶部
顶部