使用GWT而不是PHP的优点

时间:2010-08-09 16:55:15

标签: php gwt

我正在考虑为初创公司创建一个网站,我正在尝试决定是否要使用GWT构建它。我以前做了很多PHP,并希望继续这样做,但我的一位同事建议使用GWT。我阅读了Google发布的有关它的信息,我发现所有的脚本都是Python。我之前从未使用过Python,但它看起来并不具备挑战性。

无论如何,问题是,对于所有使用过GWT的人来说,你怎么看待它而不是坚持使用PHP方法?你可以用GWT做些什么,不能用PHP,反之亦然。

谢谢!

编辑:抱歉,将GAE中的Python与GWT混淆。

3 个答案:

答案 0 :(得分:6)

GWT和PHP不是互斥的。

GWT或Google Web Toolkit作为一个框架启动,可以让您编写生成AJAX应用程序界面的Java代码。你写Java,HTML / CSS / Javascript就出来了。 GWT的UI层与后端服务器无关。 GWT生成一个调用AJAX URL的UI。这些URL无法在PHP中实现。 GWT并不关心URL的另一端是什么技术,只要它以正确的格式返回数据即可。您可以在Communicating with a Server部分阅读更多内容。

如果你对它产生的小部件的一般外观/感觉/行为感到满意,并且你知道Java,那么GWT是一种不错的方法。

如果您需要/希望对应用程序的HTML输出进行细粒度控制(对于许多PHP开发人员来说很常见),GWT会引入比解决更多的麻烦(除非您喜欢在Java领域花费大量时间) )

答案 1 :(得分:4)

这是一个主观和议论性的问题,因此应该关闭 - 你没有提供有关你的创业的任何信息,所以很难提供具体的答案,所以你只会听到营地任何一方的主观意见: )

话虽如此,让我们理清一些事情:) GWT和PHP可以一起工作(并且做得很好 - 我在之前的GWT项目中使用过PHP)。您将GWT用于前端,而PHP则用于(服务器)后端。通常通过JSON进行沟通。 GWT提供了一个非常漂亮的东西,称为JavaScript Overlay Types,它允许在您从服务器获得的JSON的GWT应用程序中非常平滑(并且快速,因为它使用浏览器进行解析)。此外,如果您是(经验丰富的:) PHP程序员,UiBinder应该轻而易举地学习,它提供了一个熟悉的环境来为您的小部件创建模板。

然而,随着GWT 2.1的出现,为客户端和服务器坚持使用“纯”GWT可能更有利。这主要是因为当涉及到服务器 - 客户端之间的通信(缓存,自动更新Comet风格等)时,GWT 2.1为程序员做了很多工作。有关详细信息,请参阅Google IO 2010中的this presentation

哦,PHP和GWT作为一个整体的目标是不同的东西:PHP适用于具有动态内容的网站(所以现在大多数是“普通”网站),而GWT最适合创建RIA(富互联网应用程序 - 想想GMail和喜欢)。虽然您可以使用PHP创建RIA,但它很麻烦 - 对于GWT和“普通”站点也是如此(您只需在GWT中创建小小部件以嵌入到正常的,可能是PHP生成的站点中)。

PS:有人认为,GWT比PHP更有优势(当然是恕我直言)是语言。这是一个偏好的问题,但我更喜欢强类型,面向对象的语言,如Java,而不是PHP,它试图同时做很多事情(添加面向对象的功能,一些关于类型的信息等) - 一件事我不喜欢我的GWT + PHP经验是PHP语言 - 也许只是我缺乏PHP经验,但我只是不喜欢PHP让我写的代码类型。

答案 2 :(得分:1)

GWT和PHP(通常)是互斥的。

GWT是Google的一个框架,允许编写丰富的网络应用程序,通常是单页应用程序(如GMail,Google Wave等) - 通常称为RIA(富Internet应用程序)。

该框架允许在一个Java项目中定义前端布局和后端处理。构建时,它会生成跨浏览器兼容的HTML + JS,以及以Java Servlet形式运行的后端。

除了可以在前端和后端之间轻松共享定义和代码之外,内在的RPC机制允许直接从前端代码调用后端方法,而不必担心AJAX打电话。

Web设计过程确实与GWT完全不同 - 在设计Web界面时几乎看不到HTML或JavaScript,而且它与传统的UI设计更相似。幸运的是,我们有一些相当不错的UI库 - 例如SmartGWT(它是SmartClient RIA JS库的包装器)。

请注意,GwT根本没有Python编程(也许你指的是Google AppEngine?这是一个完全不同的东西)

alt text