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