关于swing的一些看法

这半年在研究im,xmpp相关方面的东西,其中涉及到客户端(如spark)的一些开发问题,在技术群里,经常有人问swing的问题,看到就做了一些回答,由此想起了swing以前的一些开发经验,对其优劣做了一个简单分析。

java在gui方面一直饱受争议,甚至基本处于各大主流,甚至sun都放弃的地步,但对个人而言,作为普通的技术开发人员,swing在工作中基本用不到,还在生存温饱线上的我,只能一直将此作为爱好,不时研究一下。

类似spark这样的工具,也有不少,最牛的当属jbuilder,当然eclipse 的swt横行,又吸引了不少swing的关注,swing应用开发越发凋零。有谁多少知道jbuilder,netbean开发swing的强大功能,有谁还记得MS当年vj ++多牛,性能多强,直接生成.exe文件,当然更没人知道vj++与超级大神Anders Hejlsberg的渊源。其实swing可以做到很好,只是没人从商业角度去挖掘,或者有足够好的替代品。

在此,我简单分析一下swing的优劣:

劣势:

1,性能,java做ui性能肯定不如原生的,当然据说vj性能极佳,但地球人都知道ms跟sun的关系,即便今天sun完了,oracle跟ms的关系也好不到哪去。

2,应用少,在window桌面一桶天下的情况下,swing应用越发少,而且其他语言的开发性价比更具优势,比如c++,不说ms的vs系列,就是dephi那也是很多爱好者的。当年只有borland的jbuider独挡一面,现在,说起来,就是悲剧啊,我偶尔会想,要是当年Anders Hejlsberg不离开borland,而是来弄jbuilder,该是如何呢?当然只是猜想,更深层次的情况我也不懂。

3,开发工具的问题。其实这点我也说不清楚,因为我知道不少gui的开发。jbuilder 还有更新,基于eclipse的版本,我也在保留了jbuilder9的版本,当然有一些落后;netbean一直在更新,目前都8.0了,其它一些如jform design等更少为人所知。而且我认为这些开发工具并不落后,swing的ui设计层次和理念也相当先进,但从名次上讲,这些东西又有多少人知道呢,哪怕是开发java的,知道了又有多少人用过呢?这才是它最大的劣势。同样是java,在android ui开发应用直接让swing泪奔。

4,商业需求。没多少应用和ui需要swing来做,这才是最大的问题。这点没法说,swing苦逼感觉。

5,丑陋的界面?是有一些丑,但swing其实是有很强大的ui设计接口的,叫look and feel。可以自己设计skin,其实很漂亮的。开源的laf也有不少,这丑的缺点是有,但我认为不是不可解决的。

还是来说说,优势:

1,java跨平台的优势。可以在mac,linux和widnows多用,这点,当然前提还是有这多平台发布的需求。

2,强大的java社团和庞大的开发人员,这点是java语音最大的优势,

3,门槛低

4,先进的ui理念。这点是我个人看法,因为我只是简单用过ms的vc,vb以及vs工具,但从语言角度上讲,我觉得java完整的面向对象的特点,在swing设计上体现的 非常好,事件机制,回调机制,布局等都是很清晰的,mvc模式也广泛应用与swing设计中。这点相对android ui开发都不逊色。

当然呢,swing至今如此局面,我觉得可能更多的是技术之外的因素,那就是商业因素,没人来广泛支持,用的也就少,用的少,关注就越少,...,恶性循环。


以上都是我个人看法,一个swing爱好者的自语,不足之处,请随时拍砖。




你可能感兴趣的:(关于swing的一些看法)