2010-08-09 36 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