看着这两天CSDN上纷纷扬扬的NetBeans与Eclipse之争,对我这种低层次(不整天泡在其源代码中)的用户来看,关键就是SWT与Swing之争。
我仿佛又回到了刚接触Web的时候了,那时Netscape正如日中天,而Microsoft的IE正在不断蚕食Communicator的市场。当要编写Web页面的时候,我往往需要同时在机子上运行IE与Communicator,因为他们在很多方面有着轻微的不同,而这不同又确确实实困扰着我。我希望严格遵循W3C的标准,不在网页中使用MS特有的拓展(它往往是与Windows而非Web相关的),即使它确实是对Web的拓展,我也希望它提交给W3C成为标准而不是另起炉灶。另外,Communicator支持JavaScript,而MS更希望用户使用VBScript,我极力劝说那些使用VBScript的开发者,试图使他们转向JavaScript,但MS的影响是强大的,最终我不得不面对这样的情形:当使用非IE核心的浏览器时,很多网站看起来是如此的糟糕,(尤其在中国)。更糟糕的是,它也许压根儿就不能打开网页。只有那些严格(或者基本)遵循W3C标准的网站,才不会出现这种情况。
历史总是惊人的相似,类似的情形在今天的Java中又出现了。当已确立Swing为Java的GUI标准后,IBM却抛出SWT来做跟Swing差不多的工作。其实,从SWT的实现来看,SWT其实就是AWT + Swing。我个人很不喜欢AWT UI组件,认为出了速度稍快外一无是处,当Swing出来后,我甚至想过Sun完全抛掉AWT中的UI组件。 (很多人认为AWT UI与Host上的UI完全一致也是优点,我不这样认为。当我还在用C++写程序时我经常将我的界面设计得跟MacOS或是其它的更为漂亮的样式,我希望Swing能够引领UI设计潮流,就像Mac做到的那样,当然很显然Metal是失败的,Ocean也还没能做到这一点)当然,我并不认为Swing是完美的,但是,开发过Web网页的人们会知道,当你希望全世界都能运行你的代码时,标准是一个多么重要的东西!
我仿佛又回到了刚接触Web的时候了,那时Netscape正如日中天,而Microsoft的IE正在不断蚕食Communicator的市场。当要编写Web页面的时候,我往往需要同时在机子上运行IE与Communicator,因为他们在很多方面有着轻微的不同,而这不同又确确实实困扰着我。我希望严格遵循W3C的标准,不在网页中使用MS特有的拓展(它往往是与Windows而非Web相关的),即使它确实是对Web的拓展,我也希望它提交给W3C成为标准而不是另起炉灶。另外,Communicator支持JavaScript,而MS更希望用户使用VBScript,我极力劝说那些使用VBScript的开发者,试图使他们转向JavaScript,但MS的影响是强大的,最终我不得不面对这样的情形:当使用非IE核心的浏览器时,很多网站看起来是如此的糟糕,(尤其在中国)。更糟糕的是,它也许压根儿就不能打开网页。只有那些严格(或者基本)遵循W3C标准的网站,才不会出现这种情况。
历史总是惊人的相似,类似的情形在今天的Java中又出现了。当已确立Swing为Java的GUI标准后,IBM却抛出SWT来做跟Swing差不多的工作。其实,从SWT的实现来看,SWT其实就是AWT + Swing。我个人很不喜欢AWT UI组件,认为出了速度稍快外一无是处,当Swing出来后,我甚至想过Sun完全抛掉AWT中的UI组件。 (很多人认为AWT UI与Host上的UI完全一致也是优点,我不这样认为。当我还在用C++写程序时我经常将我的界面设计得跟MacOS或是其它的更为漂亮的样式,我希望Swing能够引领UI设计潮流,就像Mac做到的那样,当然很显然Metal是失败的,Ocean也还没能做到这一点)当然,我并不认为Swing是完美的,但是,开发过Web网页的人们会知道,当你希望全世界都能运行你的代码时,标准是一个多么重要的东西!