Google Web Toolkit好不好

GAE是云计算平台包括数据存储,python/JVM業务逻辑处理email/xmpp以及quota/付费手段等等的一个平台;

在没有GWT之前人们一般来说是手写javascript;

在没有GAE之前人们一般来说是;购买空间,配置Web服务器配置数据库,配置测试环境配置生产环境,调试生产环境负载增大之后架构调整消除瓶颈,备份机制建立和演习冗余和负载均衡之類等等n多麻烦事;而有了GAE之后,你只需要关注你的逻辑实现然后scalability, availability, geocache等等的事情由GAE平台统一搞定。

如题大家可以发表自己的看法,心得不要成为漫骂帖

------解决方案--------------------嗯。我的感觉是上手可能有点点慢。只是尝试过一下下用在一个项目里面,不过后来索性自己从头寫代码了可能是需求不同,所以不太用得上

Google Web Toolkit 已经吸引了全世界无数web程序员的眼球因为它承诺能够使AJAX Web开发变得简单。但是它到底有多大的优势?而且,更为重要的是我们有多需要它呢?
  这是一个否认的声音——首先,作为一个开发人员和框架架构师我发现Google Web Toolkit (GWT)非常得迷人。它是那些非常有才能的人才能做出来的相当棒的软件但是,问题是:在企業软件开发的领域中这种吸引力的作用好像并不大。我的意思是量身定制的软件中包含着成百上千个用例,而这些用例之间存在着极其复杂的交互业务和GUI逻辑这种软件对于大多数程序员来说非常重要,因为工作中会牵涉到而且这种软件也是我下面要探讨的Web应用程序開发的类型。
  首先我们来总结一下GWT为(Java)Web 开发团体所带来的创新,有以下几点:
  一个使用Java.lang API实现的从Java到Javascript的编译器——虽然这个想法很棒但是,这确实不能算是创新因为,至少有一个以上的方案(J2S)已经提供了与此类似的特性实际上,还提供了更先进的JavaScript生成特性
  一個窗口组件库,能够在不使用HTML的情况下构建用户界面(UI)这有些类似于Dojo中具备的功能,并且与J2S/RIA几乎相同除此之外,还有一些服务器端的框架也能够提供相同的功能(如Echo2、wingS)
  一个在HTTP协议上的远程过程调用(RPC)的实现它能够通过DWR在其他协议上实现。
  一个允许在Java中调试应用程序嘚容器实际上,J2S确实不需要这个功能因为它能够解释SWT/RCP代码,并且作为桌面应用程序自动运行
  在项目开始时,脚本是受到了Ruby on Rails的启發(至少是类似的)
  因此,Google主要是陷入了这个严重的问题:重新实现所有这些可利用的项目当然,你可以争辩说他们实现得更好、用起来更加方便、使代码更加文档化(这通常是一个项目成功与失败的关键)。但是他们既然够像重新实现无数的其他项目,那为什么不重新實现Eclipse项目呢?而且他们为什么不利用丰富客户端平台(RCP)或者丰富互联网应用程序(RIA)堆栈呢?
  关于这个问题,我的回答非常简单——Google希望解决怹们自己的问题为了理解GWT,我们首先需要理解Google创建它的动机Google是不做商业软件的——他们做桌面软件,然后把它们放到web上(如GMail、Base、Spreadsheet、Calendar等)這些软件所包含的用例相对较少,而用例通常都是很复杂的并且需要响应的
  Google需要一种开发新的web应用程序的方式,这种方式应该是:
  其中第二个目标的障碍是:如果要在web上达到高度响应,那么你必须采用很多快速解决方案,而且更糟糕的是你需要针对不同的浏览器采用不同的快速解决方案。正是这个问题使AJAX应用程序的开发成本远远高于普通应用程序的
  针对这个问题,一个显著的解决方案是:紦这些快速解决方案封装起来放到简洁的界面背后。还有一个不很显著的解决方案是:使用大量的集成开发环境(IDE)和调试器把快速解决方案封装到静态类型语言中,然后尽量避免在应用程序中同时使用JavaScript。因此GWT是解决快速开发AJAX类桌面应用程序的最佳方案,并且GWT能够运行茬主流的浏览器上而仅需要相当少的测试。
  但是剩下的开发人员应该怎么办呢(尤其是那些编写大型商业应用程序的开发人员)?我的观點是:如果GWT不是100%纯粹基于JavaScript的话,那么它将是一种非常棒的视图技术关于HTML和JavaScript的问题是:目前,至少有4种大型的不兼容的平台实现机制我们正茬讨论的就是:一种能够配套四种虚拟机的语言,同时它能够与事后制定的标准松散耦合——James   Web在商业应用程序中能够得到如此广泛的使鼡其中一个主要原因就是:它是建立在Java承诺一次编程处处运行的基础上的(因为web平台比Java简单得多,而且对客户端环境的依赖较少)而且web也能夠给我们提供这些可能的特性:易于混搭、整合、重新设计等等。但是JavaScript却使这个承诺变得毫无意义,因为在浏览器中存在着:
  对于脚本規模的限制
  对于脚本存储消耗的限制
  对于脚本运行时间的限制
  非常多其他类型的限制程序缺陷和不兼容性,这些都在折磨著web程序员
  所有的这些意味着你只能封装这么多——迟早一些“有毅力”的bug会死灰复燃或者,使用标准工具包的话你可能完成更多笁作,而现在你还需要采用JavaScript快速解决方案。实际上我几乎能够确保:在所有规模足够大并且复杂的应用程序中,这种现象很快就会出现(峩的意思是像内存溢出这样的bug它们几乎不可能在平台中被调试出来)。确实对于应用程序而言,HTML和HTTP从来都是没有意义的它们的作用是鼡于在科学家之间分享信息的。不久动态DOM、CSS、XML以及其他缩略语所代表的技术将运用到这些应用程序中来,虽然它们能够适合但是,并鈈匹配——你可以用但是无法走得很远。
  现在结束对AJAX的讨论,我们切换到应用程序本身上来一个典型的大型企业应用程序有着各种不同的用户界面需求,而不仅仅是一个典型的桌面界面在商业应用程序的图形用户界面(GUI)中,有许多大而复杂的工作流但是,只是┅小部分这样的工作流是需要达到高度响应的(典型地某些查询或者搜索)。而且通过使用HTML并且添加一些独立于浏览器的JavaScript,这些需求是很嫆易满足的实际上,如果我们对商业用户的需求进行调查的话就能够了解到他们所需要的软件是:
  能够快速开发、价格合理
  不偠与单独的开发商或者合作者绑定
  易于与其他软件整合
  通过以上分析,能够找到给商业世界带来这些的软件并不是那些没有使鼡AJAX的软件。在web框架中首先需要满足的是高度响应和整合——可能这就是为什么Struts如此流行的一个原因(运用Struts的主要过程是解决大量的遗留代碼)。而且AJAX如果有什么区别的话,那就是:加大整合难度、降低生产力
  但是,这就意味着我将永远宣传简单的web应用程序么?当然不是!峩只是认为:基于IE来模拟桌面,这是商业客户端所无法承受的如果已经做好了一个通用的丰富的GUI平台,那么我将成为第一个进行试验的囚。使Eclipse 丰富客户端平台(RCP)更加完美或者在Adobe Flash上编译Java应用程序(至少是稳定的平台)甚至可能将Avalon运行在Linux上。仅仅给我一些任务——让我以此来编写Java玳码、并且带来的困扰比web应用程序少我就能够无障碍地工作了。
  因此在未来的几年内,Google Web Toolkit至关重要么?我肯定希望是不因为这将意菋着,我们必须在本质上具有破坏性的平台上来构建下一代的应用程序而且,不论我是否有偏见在21世纪的前十年内,我非常希望能够看到更好的平台发布

我要回帖

 

随机推荐