2008-12-03 59 views
6

我前幾天和某人聊天,他們建議Rails和PHP是最適合Web應用程序的平臺,並避免使用Java。我的背景主要是Java,我知道某些人認爲它太冗長和「重量級」,但偶爾會使用(例如,LinkedIn)。Java適用於「Web 2.0」應用程序嗎?

所以我想知道是否有人使用Java成功地使用了Java的最近的Web應用程序已經上線,要麼使用語言本身(例如Stripes/Spring + Hibernate),要麼使用動態語言作爲JRuby,Groovy,Jython)?如果是這樣,請分享一下有效的工作和你會做的不同。

一些背景(後來加入): 的Tim O'Reilly創造了措辭「網絡2.0」,這裏是他的定義:http://www.oreillynet.com/lpt/a/6228

我認爲它是「的發佈週期結束」和「輕量級編程模型」,涉及快速迭代和簡化部署,其中Java可能不太合適。思考?

+0

我並不是Java的粉絲(儘管我在工作中使用它),但我現在選擇Java over PHP。 PHP太特別,需要花費很多精力爲大型項目維護一個乾淨的代碼庫。我的所有意見當然。 – Dan 2008-12-03 15:48:48

回答

9

有兩種完全不同的概念,稱爲Web 2。0:

  1. 用戶生成內容(通常是用一些 '社交網絡')

  2. 動態的基於AJAX的Web應用程序

第二個有點決定了你有技術(至少一些JS和機器可讀內容在(一些)響應中)。當然,在服務器上使用Java(或CGI,Perl,不管)是什麼都沒有。

第一個與技術無關,與您提供的服務本身無關。再次,你可以使用任何你想要的。

爲什麼這兩個混合在同一個therm?更重要的是:爲什麼動態語言對它更合適?我猜這只是偶然的巧合,所有三件事(用戶生成的內容,AJAX,嚴肅的動態語言)大致同時躍升到了衆人關注的焦點,每個概念的大多數支持者都在使用其他兩個。

總之,最好避免像「web 2.0」這樣的未定義的marketroid術語,並使用適當的描述。至少在工作時。當賣給風險投資商和PHB使用任何和所有流行語時!

19

我認爲沒有針對Web 2.0的特定技術。 Web 2.0應用背後的主要概念是大部分內容是由用戶提供的,而不是一個特定的人。如果你可以用Java實現這一點,那很好。許多人創建的創業公司的技術是免費的,因爲他們沒有資金。

+0

+1,因爲web 2.0更像是一種「風格」或一種Web應用程序。某些語言可能比其他語言更適合於某些類型的應用程序,但是這些語言並沒有規定您必須使用語言X或Y. – Dan 2008-12-03 15:51:02

3

我在哪裏工作,我們所有的應用程序都是使用Java構建的。它們是Web應用程序,使用hibernate或數據端的直接JDBC構建,並使用Struts或JSF作爲演示文稿端。除非我們能夠訪問最新版本(由於我們的IDE,因此我們被困在1.0版本中),否則我將不再使用JSF,因爲我們遇到了許多問題,並被告知它們已在更高版本中修復。至於其他技術,如果你知道如何使用它們,它們工作得很好。

總的來說,用一種你熟悉的語言進行開發並且能夠完成這項工作的能力要比你幾乎不知道但能夠成爲這份工作的「最佳」語言的能力要好。

5

當然是了。 Java有一些非常成熟和經過測試的Web應用程序框架,包括所謂的Web 2.0網站。 Hibernate,Spring,甚至Struts和Tile,甚至是Plain Old Servlets都可以。

此外,與Ruby相比,Java非常快速(請參閱Debian速度測試),這對於處理大量請求的網站非常有用,而Ajax確實會增加數量! :)

1

我使用Java構建Web應用程序,然後將PHP用於我的個人項目。雖然Java當然可以滿足您可能需要的所有功能,但有時我發現它有點麻煩,並且希望我使用PHP(或其他語言)。它取決於你正在構建的應用程序的類型和大小,但我認爲很多人爲什麼選擇PHP,Ruby和Python作爲他們的個人項目,也就是他們可以選擇他們構建的Web應用程序在(而不是他們的上級)。

2

「Web 2.0」通常指的是用戶界面,而不是支持Web應用程序的底層技術。

什麼阻止基於Java的webapp在UI層完全浮華和AJAX-y?沒有。你將用Java編寫中間層 - 對用戶來說這是透明的。

我認爲,誰給你這個建議的人都比較關心的是「時髦」和(他們認爲是)當前什麼是「熱」,現在 - 這是完全無關的標記你的UI。我不會聽他們的。

4

你的朋友,所有應有的尊重,都是玩偶。 Java是一種豐富的語言,具有令人難以置信的工具支持你可以在Java中創建一個夢幻般的後端,並使用任何你想要的前端。

我花了一段時間才弄清楚在這個答案中說什麼,因爲我很喜歡這個概念的瘋狂。

2

美好的一天,我再次發佈約Wicket! :)

只要您知道如何使用可用的工具,Java就非常適合Web2.0應用程序。我剛剛鏈接的Apache Wicket是一個基於POJO的Web應用程序框架,它以令人難以置信的方式隱藏所有無聊的服務器 - 客戶端內容,它可以讓你做任何你能想到的事情。這裏的重點在於,由於Wicket只是POJO,因此您可以獲得非常快速,迭代和單元測試的代碼,這些代碼的工作方式與瀏覽器期望的一樣。

要使用Java創建Web2.0站點,您當然不必使用Wicket,但無論如何我都會推薦它。

相關問題