【问题标题】:Advantages to using GWT over PHP使用 GWT 优于 PHP 的优势
【发布时间】:2011-03-27 10:01:22
【问题描述】:

我正在考虑为一家初创公司创建一个网站,并且正在尝试决定是否要使用 GWT 来构建它。我以前做过很多 PHP 并且想继续这样做,但我的一位同事建议改用 GWT。我阅读了谷歌发布的关于它的信息,我发现所有的脚本都是 Python 的。我以前从未使用过 Python,但它似乎没有那么具有挑战性。

无论如何,问题是,对于所有使用过 GWT 的人,与坚持使用 PHP 方法相比,您如何看待它?有什么可以用 GWT 做而 PHP 做不到的事情吗?反之亦然。

谢谢!

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

【问题讨论】:

  • "所有的脚本都是 Python"?在 GWT 中? O_o

标签: php gwt


【解决方案1】:

GWT 和 PHP 并不相互排斥。

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

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

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

【讨论】:

  • @Alan - GWT 非常关注服务器端,因为它生成捆绑在一起的服务器和前端代码。
  • @adamk GWT 可以生成服务器端代码,但绝不是必需。您可以将 GWT 编译生成的 JavaScript 与任何服务器一起使用(甚至可以在本地运行,或者作为完全没有服务器的 Chrome 扩展程序)
  • @Jason 这不是丑陋的问题,而是控制的问题。我对像 GWT 这样的 UI 框架的看法是,您接受小部件的整体设计(并且我在设计中包含了功能),并且您可以对其应用样式,并且通常会获得“漂亮”的结果。在 GWT 中更改小部件的整体外观/感觉/行为需要编写新的 Java 来更改小部件的行为。我不会对 jQuery 说同样的话,但我对 jQuery UI 说同样的话。
  • @Alan 我明白了。所以这不是 GWT 产生丑陋的应用程序的问题,而是与 GWT 捆绑的预先存在的小部件“一成不变”并且可能需要开发人员编写自己的小部件以获得最大的灵活性。是否有任何 UI 框架不是这种情况?提供开箱即用的灵活性似乎只是给人们更多的绳索来吊死自己。
  • @Jason 这是对权衡取舍的准确描述,是的,任何 UI 框架都是如此,但普通 PHP 开发人员将更容易破解 PHP 或 Javascript UI框架,而不是 Java 框架。
【解决方案2】:

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

GWT 是 Google 的一个框架,它允许编写富 Web 应用程序,通常是单页应用程序(例如 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?那是完全不同的东西)

【讨论】:

  • 我想我会说 GWT 在与 Java 后端(例如,代码共享、GWT-RPC)一起使用时更强大/更有用,但我绝对不会 说这两者密切相关,你不能用 PHP 后端运行 GWT 前端。
【解决方案3】:

这是一个主观且有争议的问题,因此应该结束 - 您没有提供有关您的创业公司的任何信息,因此很难提供具体答案,因此您只会听到阵营双方的主观意见: )

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

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

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

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

【讨论】:

  • 主观与否,似乎这个线程/问题中有很多有用的信息。
  • 我知道,这就是我提供答案的原因 :) 但是如果 OP 指定他想要创建什么样的初创公司,我们也许可以回答 GWT 相对于 PHP 的优势是什么的问题对于 this specific 案例 - 从我所看到的情况来看,关于此类主题的一般性讨论不会让我们有任何收获(尽管很有趣)并且不鼓励这样做。我不介意分享知识,只是不想在这个过程中乱扔垃圾:)
猜你喜欢
  • 2012-03-09
  • 2012-04-20
  • 2015-12-08
  • 2011-10-04
  • 2016-11-02
  • 1970-01-01
  • 2012-08-08
  • 2013-09-11
  • 2012-09-20
相关资源
最近更新 更多