Google,Amazon或LinkedIn是否算是現代?
Java用于現代Web應用程序。如果您查看企業內部,它是Web應用程序(內部)使用多的語言。
也就是說,Java經歷了一段時間,它的Web開發標準試圖成為每個人的一切(可以說仍然是)。 “不要重復自己”是對xml地獄和Java Web開發的長期構建周期的響應。因此,Java(EJB,Struts,JSF等)被看作是所有新范式試圖克服的東西。
Java,語言是verbose。這是一個親和一個(偉大的維護,吸引開發)。有一些現代語言功能尚未使其成為Java,可以大大縮短編碼時間(屬性,事件,閉包,生成器,列表解析等)。所以,當從更現代的語言來,它可以是令人沮喪的。也就是說,他們很難添加到一個成熟的語言,而不成為老鼠巢,C#正在成長。
現代web開發中使用的許多語言都是動態類型的。這使得工具能夠在寫入代碼時動態重新加載代碼(這在靜態語言 - jrebel中更難實現)。由于Web開發適用于快速迭代,動態重新加載是一個巨大的勝利。它顯著減少了綠地項目的開發周期,并使得更容易獲得UI和UX的權利(試驗和錯誤性質)。
靜態語言也有它們的位置。對于復雜的后端邏輯,必須運行多年,必須擴展沒有問題,必須非常快,并且必須完全無錯,靜態類型語言(如Java或甚至C)是首選。
此外,隨著開發商計數/營業額增長和產品成熟的良好意圖的人的可能性引入bug的暴雪。一個精心設計的Java項目(接口,模式和這些php吸血鬼的圣水)強制執行的嚴格和紀律有助于減少長期風險。雖然,這也可以通過單元測試實現,從靜態檢查(和靜態分析器,如findbugs和clang)派生的安全網提供了一個內置的代碼覆蓋水平,很難用手寫測試復制。不要誤會我,應該有單元測試和功能測試,但真正的組織從來沒有實現100%的覆蓋。對于他們檢查,靜態分析器。
因此,在大型項目(由團隊規模大于代碼大小定義)中,獨立開發的代碼塊之間存在復雜的互操作性,像Java這樣的語言仍然是首選。示例包括大型/復雜的Web應用程序,如金融經紀人(ameritrade),金融交易所(nasdaq,nyse,.net失敗后可能是倫敦),網上銀行(幾乎所有),電子郵件(google) ,等等。
從性能和規模的角度來看,Java平臺并不是Web應用程序的可擴展性和性能的組合(取決于如何計算Facebook的應用程序分區)。例如,Twitter必須在Java VM上在Scala中重寫大部分的Ruby基礎架構,以便將失敗的鯨魚重新導出到海中。我聽說過其他大例子,但他們現在逃避我。
這也值得考慮安全。雖然Java瀏覽器插件遭受了公平的安全漏洞,但java平臺本身是創建的更安全的平臺之一。 Java Web應用程序具有非常安全的聲譽。它的編碼實踐,庫和架構有長期阻止的錯誤,使像sql注入或緩沖區溢出的攻擊成為可能。雖然其他網絡平臺(rails)有良好的安全信譽,沒有超越Java。
底線,大多數Web應用程序在技術上都很簡單。對于簡單,Java通常是過度的(就像在舊的時候,當我們在C :)中寫它們)。但是,如果webapp是復雜的(后端或其他)或預計有100多個開發人員,Java是很難擊敗。
- -
在個人方面,我使用Grails很多,因為它給了我好的兩個世界(同樣可以說的JRuby,我聽說在Ruby世界越來越流行)。
BTW - 我發現PHP的興起是真正令人費解的。 PHP作為一種語言是粗略的等同于perl的可讀性和VB的質量的結果。它鼓勵可怕的做法,是不可能維持,第三方庫很少按預期工作,它有一個語法,將驅動拉里·沃爾... ...墻。我可以想到的唯一的解釋是,它適用于增量學習(如VB)。換句話說,你可以做一些有用的知識很少有關編程/管理,你可以擴展你的知識一個小塊。從采納的角度來說,有很多話要說。但是,對于任何人都不得不支持或替換由“programm”編寫的數十億的VB應用程序之一
開始Ups想閃亮。無論閃亮是什么:RoR,Groovy,Grails,OOP w / PHP,Foobar,Wibble,Narf等。
企業需要穩定,可靠和可擴展:Java和.NET適合賬單(當正確完成時)。
當前演講:金融服務。平臺:ColdFusion(本質上是一個Java標簽庫)和Java。
教育測試服務 - ColdFusion
高風險保險 - ColdFusion和Java
401k - ColdFusion和Java
旅行 - Java w /內部ColdFusion應用程序
證券 - ColdFusion(Java前版本)
這些都是高容量,高安全性的網站。沒有人在任何這些公司考慮過PHP,一些看著RoR,看到太多的問題。 401k公司有一個姐妹公司運行.NET應用程序與合格的開發人員,該應用程序只是不斷崩潰每個星期。他們終將其轉換為Java并獲得穩定性。
唯一看不起Java的人是那些沒有或很少有實際經驗的人,或者參與了糟糕的實現,現在是害羞的。他們看到閃亮的數字,如果所有的酷孩子都在使用它,為什么不是我?