swt、eclipse RCP与“Java All in One”

近年来的eclipse与netbeans之争日趋激烈,并不只是IDE争斗那么简单(反正都是免费)。其背后是swt与swing之争,更是IBM所主导的开源Java与Sun所主导的官方Java之争。

搞了四五年Web,冷静下来发觉企业内部应用还是Rich Client好(交互性好、状态管理容易、客户端资源利用度高、易开发等等)。这个事实其实很多做企业开发的同道以至于客户都意识到了,于是出现了很多团队被迫用winform,甚至回头啃Delphi这类无奈的事情。可惜异构调用还是不爽啊,不仅仅是协议转换的问题,还有语法习惯的问题,更要命的是开发思路不同的问题。既然Java是大而全的体系,难道我们就不能始终如一地解决问题吗?
这个问题,其实IBM和Sun也都看出来了,所以不论是eclipse还是netbeans,都不仅仅是单纯的IDE,而是力求“平台化”,争的就是Rich Client的标准问题。
可惜Swing始终是慢,慢到让人心烦,慢到让老一点的机器无法忍受,慢到难以让客户接受(甚至JDK1.6也好不到哪里去)。

好在我们还有swt可用。经过本人多次测试,swt的运行效率其实与winform是不相上下的。
以前由于VE实在难用,而NB嫌慢,Swing和swt笔者以前一直是做手工编码。这一点上说句实在话,Swing的代码是超级优美,扩展类库和控件简直可说是一种享受,可惜还是慢(包括JDK1.6)。
最近由于一个项目要求,要用到swt,于是迫不得以用了一把swt designer(毕竟是D版啊)。这才发觉swt开发原来可以如此之快,几乎达到某些人吹嘘的近似Delphi的程度。而swt designer本身,可说是eclipse RCP的经典范例,功能如此之强、速度如此之快,操作如此便捷,彻底颠覆了笔者过去对Java Rich Client那种“恨铁不成钢”的成见。
回头想起myeclipse、Flex Builder这类精品,这才体会到多年前很多同道对eclipse平台的“野望”。eclipse的确是有实力、有希望成为Rich Client的通用标准开发平台。在此向企业应用开发的同道们进行推荐,希望大家共同努力,让国内swt尽快走出“叫好不叫座”的尴尬局面,尽快赶上国外同行们在此领域取得的成绩。大家可以看一看国外很多利用eclipse RCP搞定的复杂软件,甚至很多项目以前普遍认为是MFC的专属领域;而IBM公司更是把各类软件转向eclipse平台;甚至近日MS都打算染指。 eclipse之野望正一步步成为现实。

企业应用“All in One”,不仅是开发者之福,更是企业用户之福。笔者近来年接触的企业应用,大多数都面临孤岛集成的痛苦。主要原因当然是规划不到位、系统分析散乱、数据不统一所造成,但各个时期技术体系不能“大而全”地解决问题也是技术层面的主因。
WS嚷了好多年,至今复杂低效难用,历史一再证明企业内部异构集成不可取。现在我们有了Java这种“平衡至上”且开源主导的技术,有swt能够补上Java一直以来的缺憾,能够做到“All in One”。作为企业应用开发者,我们的确是应该认真考虑并实施“Java All in One”。
[该贴被lgx522于2008-03-25 10:50修改过]

也许swt和swing都不是好东西,反而不如javascript呢,静态语言在构建大型灵活具有长周期的软件中是强势;而做跟随人的感官变化方面的小技巧界面方面,动态语言或者解释语言js也是强势。

现在想想:用Java之类做管理软件的界面,有些重量。

建议banq老师开一个swing,swt类别的论坛,swing这个框架不就是设计模式之大成吗?听说写swing的人在swing中不该用模式的地方都用模式。

JS做对界面要求高的OLTP,相当之麻烦,还是拖拽式的GUI来得爽。
且现在的OLTP,在向纵深发展,不仅仅是上一阶段的MIS了,有很多业务辅助的功能,JS和Web是很难应对的。

我公司的一整套jsf-ajax组件库都是我写的,之所以不用网上的,是因为要照搬原来的swing胖客户端,那里面有很多可怕的控件。到目前,一提起js,我还是头疼,它似乎是个定时炸弹,我很怕它。目前自己写的东西,到改成swt了。

swt这种破玩意还有人在用啊?我从来都是使用swing,而且netbeans要比eclipse好用一百倍。