长期以来,Java被认为是服务器端的佼佼者而在桌面领域并无建树,早期的Swing
在外观和性能上都差强人意,成功案例不多,基于Swing的netBeans无疑惨遭厄运,这
样的局面下滋生了SWT和Eclipse这种违背Java原则的产物。
05年大学毕业时,偶然的机会购买了陈刚写的那本《Eclipse从入门到精通》,这
是国内第一本讲述Eclipse和SWT的书籍,我从那时候起接触的Eclipse和SWT,当时的
感觉就是Eclipse太好用了,免费的,安装比JBuilder省事多了,解压便可,但凭这两
点我就爱上它了,而且功能丝毫不比JBuilder差。借助Eclipse我自然而然对SWT产生
了好感,加上当时我的桌面开发经验、技术不足,我很容易地轻信了书中“SWT好、
Swing不好”的结论。
随着互联网的普及,应用的架构由C/S逐渐向B/S过度,用户已经厌倦了为客户端
下载升级补丁然后再安装这样烦琐的工作,他们喜欢浏览器这个通用客户端。近些年
来Ajax这个不算什么新玩意的新玩意被世人捧得天花乱坠,甚至Ajax的出现动摇了延
用多年的经典Model2设计模式。但是毕竟Ajax是用JavaScript来展现的,有些工作还
是办不到的,例如如音、视频等,怎么办?答案不是Applet和JWS,而是ActiveX。因
为前者是依赖JVM的,就这么简单,使得用户宁可冒险运行不安全的控件和顶着被拦截
的可能,也不愿意下载JRE。
早期的Java应用程序缺乏像MFC这样成熟的Framework,程序员编写程序总是从
main函数入手,最多依靠JBuilder、Eclipse、netBeans等工具生成简单的JFrame窗口
代码。RCP(Rich Client Application)的出现打破了这一局面,但是得益的不是
netBeans而是Eclipse,04年Eclipse3.0发布,以其插件机制彻底地打败了JBuilder从
而主宰了JavaIDE市场,那时候的netBeans3.5、3.6还只是玩具,根本没有资格参与
IDE大战。
不仅在桌面应用,在server端Sun似乎也无大优势。撇开.net不说,在开源界,
EJB2.x的冷落使得Spring、Hibernate流行,从而形成时下很时髦的SSHJ,而以
Linux+Apache+Mysql+PHP构成的LAMP也形成了一股势力,EJB3.0与JSF1.2等组成的
JavaEE5想要挽回局面短时期还很难。
综上所述,Sun技术之路的窘境很令Java开发员寒心,至少我是这么想。在大多人
眼中,唯一认可的Sun技术可能只有Java了。但是Sun不会坐以待毙的,可喜的是,Sun
作了战略调整,在桌面应用领域将有所突破。从JDK1.6及后续版中,Swing的功能将会
不断加强、性能也大幅度提升,Applet的稳定性和速度也今非昔比,JRE UpdateN、
JavaFX也相继问世。据说在JDK7中将实现窗口非矩形、半透明的效果,还支持嵌入浏
览器,真是不小的进步。随着netBeans6.0的发布,相信很多Java开发员会转向
netBeans,同时也会有很多优秀的netBeans插件和应用程序客户端出现。
中国有句俗话“风水轮流转”,相信netBeans能咸鱼翻身,Java借助Swing的跨平台
优势能在桌面领域称霸!