2010-08-09 33 views
4

我正在寻找创建一个启动站点,我试图决定是否要使用GWT构建它。我之前已经完成了很多PHP,并希望继续,但我的一位同事建议使用GWT来代替。我阅读了Google发布的关于它的信息,我发现所有的脚本都是Python。我以前从未使用过Python,但似乎并不具有挑战性。通过PHP使用GWT的优点

无论如何,问题是,所有的你,已经使用GWT,你觉得它是什么,而不是用PHP方法坚持?有什么你可以用GWT做什么,你不能用PHP,反之亦然。

谢谢!

编辑:对不起,在GAE与GWT混淆Python。

+0

“所有的脚本都是Python”?在GWT? O_o – 2010-08-09 18:32:28

回答

6

GWT和PHP不是互斥的。

GWT,或谷歌Web工具包,开始作为一个框架,让你写它产生的Ajax应用程序接口的Java代码。你写Java,HTML/CSS/JavaScript出来。 GWT的UI层与后端服务器无关。 GWT生成一个调用AJAX URL的UI。这些URL无法在PHP中实现。 GWT不关心URL的另一端是什么技术,只要它以正确的格式返回数据即可。您可以在Communicating with a Server部分阅读更多内容。

GWT是一个体面的方式,如果你喜欢它生产的部件的通用外观/感受/行为,如果你知道的Java。

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

+0

@Alan - GWT非常关注服务器端,因为它将服务器和前端代码捆绑在一起。 – adamk 2010-08-09 17:46:34

+4

@adamk GWT *可以*生成服务器端代码,但绝不*必须*。你可以使用GWT编译生成的JavaScript并将它用于任何服务器(甚至可以在本地运行,或者作为一个Chrome服务器而不需要服务器) – 2010-08-09 17:49:34

+0

@Alan为什么你说只有在没有服务器的情况下才应该使用GWT关心应用程序的外观和感觉? GWT与任何JavaScript框架一样容易风格化,因为就是这样。你会说JQuery产生丑陋的应用程序吗? – 2010-08-09 17:50:48

1

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

GWT是谷歌一个框架,允许编写丰富的网络应用,通常单页的应用程序(如Gmail,谷歌Wave等) - 通常所说的RIA(富互联网应用)。

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

除了在前端和后端之间轻松共享定义和代码的可能性之外,一个重要的好处是内置的RPC机制,它允许直接从前端代码直接调用后端方法,而无需担心AJAX调用。

这是真的,网页设计过程与GWT完全不同 - 你几乎看不到HTML或JavaScript设计web界面时,它更类似于传统的UI设计。幸运的是,我们有一些相当不错的UI库 - 比如SmartGWT(它是SmartClient RIA JS库的封装)。

注意,有没有Python编程都使用GWT(也许你指的是谷歌的AppEngine?这是一个完全不同的东西)

alt text

+1

我想我会说GWT在与Java后端一起使用时(例如代码共享,GWT-RPC)更强大/有用,但我绝对会*不会*说这两个关系如此密切以至于您可以运行一个PHP后端的GWT前端。 – 2010-08-09 17:52:18

4

这是一个主观和争论的问题,因此应当被关闭 - 你不提供有关您启动的任何信息,所以很难提供一个具体的答案,所以你”我只会听到营地两边的主观意见:)

这就是说,让我们弄清楚一些事情:GWT和PHP可以一起工作(并且做的很好 - 我已经在我以前的GWT中使用过PHP项目)。你使用GWT作为你的前端,而PHP使用(服务器)后端。沟通通常通过JSON完成。 GWT提供了一个非常漂亮的东西叫做JavaScript Overlay Types,它允许你从服务器获得的JSON的GWT应用程序中的一个非常流畅(并且快速,因为它使用浏览器进行解析)集成在你的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让我写代码的类型。

+5

主观与否,这个线程/问题似乎有很多有用的信息。 – 2010-08-09 19:20:53

+1

我知道,这就是为什么我提供了答案:)但是,如果OP会指定他想创建什么类型的启动,我们可以回答GWT优于PHP的这个特定情况的优点 - 关于这个话题的一般性讨论不会让我们在任何地方(虽然很有趣),并且对于我所看到的SO而言是不鼓励的。我不介意分享知识,只是不想在这个过程中乱抛垃圾:) – 2010-08-09 21:03:30