谈一谈对GWT和SmartGWT的看法

由于公司的一个web项目进度太慢,本人以前做过web项目,所以被分到这个项目了。前一段时间也听说过一点:这个项目使用的是一个叫做GWT的框架,但是对GWT是什么没什么概念,进入这个项目之前,还在想,web项目,至少比客户端的项目做起来爽多了吧!但是没想到的是这就是悲剧就从此开始了,所以吐槽吐槽GWT。

项目使用SmartGWT框架,以前没接触过,但是这个框架彻底颠覆了我对web开发的认识。看了两天的SmartGWT的showcase,然后就copy项目已有的代码,然后开发自己的模块。GWT的思想主要是用Java代码来进行web开发,Java Web开发中的Servlet,JSP全部不用写,交由GWT去生成,前端的HTML标签,CSS代码,JS代码也是由GWT生成,不过我们的项目中GWT应该直接使用了JQuery和HighChart这两个JS库。所以使用GWT,全部按照GWT的编程思路就行了,基本上就是开发Java客户端的思路,与用SWT,AWT,Swing开发客户端基本没什么区别。但是它的开发效率出奇的低,这个与HTML前端页面的复杂性没由太大关系,觉得开发效率低的原因主要是GWT提供的浏览器插件太慢。还有就是使用GWT的项目中的JS由GWT生成,很多时候使用JS简单,在GWT中却要使用Java(虽然GWT支持使用原生的JS方法,但是我试过,不太成功)。问过项目负责人为什么用这个框架,给的回复是不用写JS代码。

下面吐槽一下GWT的不友好的几点:

  • 学习曲线高,GWT对于由SWT等Java客户端开发经验的人来说可能没太大区别,只是要熟悉GWT的类和方法,但是HTML页面比起客户端会复杂很多,所以GWT学习起来比SWT复杂得多。有那么多时间来学一次GWT,差不多就可以学习怎么使用HTML,CSS,JS做前端了;
  • 开发效率低,开发的时候要启动GWT的服务,启动一次看几页书,有木有;
  • 开发环境不友好,开发的时候需要在浏览器上装插件GWT Developer Plugin,然后将浏览器的操作交由插件来请求服务器,服务器返回的结果再由插件显示在浏览器上,其实这也没什么,关键是浏览器插件慢的出奇,还动不动就崩溃。
  • 做web开发有时候应该需要查看一下前端的html  css代码,但是GWT生成的前端代码太乱太复杂了,大面积的table,div,连下拉选择的功能也是用table,div组成的,这在HTML前端开发中不就是一个select标签的事嘛;

上面几点是这段时间开发GWT项目的感触,但是不可否认,GWT还是有其价值的,特别是使用了SmartGWT之后,做出来的界面比也很漂亮,SmartGWT提供的showcase中有大量的例子供参考,对于项目团队中全部是Java背景,并且团队缺少前端开发来说,GWT还是不错的选择,虽然它的开发过程比较反人类。但是对于项目团队中有前端开发人员的团队来说,用GWT开发效率太低了,花同样的时间,但是HTML+CSS+JS开发效率更高,带来的灵活性更大,岂不是更好。现在Web开发领域,前端开放方面出现了大量的框架,相信做起来不难。


当然,对于熟悉了GWT的开发人员来说,用自己熟悉的框架才是最好的选择,所以对这些人来说,我说的都是错的......

你可能感兴趣的:(谈一谈对GWT和SmartGWT的看法)