最近看到一篇新聞:
甲骨文無(wú)心戀戰(zhàn):Java企業(yè)版休矣
剛看到這條新聞的時(shí)候,我是震驚的,作為編程語(yǔ)言的老大,居然被他的老大哥(Oracle)淪落到這個(gè)地步了,有可能是因?yàn)殚_(kāi)源不賺錢(qián)吧。但看下面的評(píng)論,又是很多評(píng)論說(shuō)是Java語(yǔ)言很爛,早一點(diǎn)必將被淘汰之類(lèi)的話。我深深的為Java打抱不平
但事實(shí)是近幾年java在所有編程語(yǔ)言中受歡迎程度都是最高的,達(dá)到了近四分之一,移動(dòng)開(kāi)發(fā)的崛起雖然給Java帶來(lái)一定的沖擊,但編程語(yǔ)言的老大哥非Java莫屬,但在我看來(lái),Java的精神永存,并且在今后的幾年內(nèi)還是編程語(yǔ)言的老大哥
是什么讓Java發(fā)展的如此迅猛?
很多人就有疑問(wèn)了,Java如何在短時(shí)間內(nèi)變得如此強(qiáng)大,是怎么做到的?
Java作為典型的面向?qū)ο笳Z(yǔ)言,他生來(lái)就是面向?qū)ο蟮?。甚至他沒(méi)有不面向?qū)ο蟮木幊谭绞?,充分演繹了萬(wàn)物皆對(duì)象的世界觀,幾乎所有大學(xué)的面相對(duì)象課程就是以Java為基準(zhǔn)進(jìn)行講解的,面向?qū)ο笙碌脑O(shè)計(jì)模式使得Java在開(kāi)發(fā)復(fù)雜應(yīng)用的時(shí)候變的如此的優(yōu)雅,可以說(shuō)Java天生驕傲
Java是一次編譯,跨平臺(tái)運(yùn)行,這就造就了現(xiàn)在如此大的體量。這就歸功于Java獨(dú)特的編譯手法。Java先編譯成.class文件,編譯了源碼之后,就可以開(kāi)始運(yùn)行了,這時(shí)候需要用到Java解釋器,把.class文件變成機(jī)器語(yǔ)言運(yùn)行,因此Java很快。當(dāng)遇到圖形化界面時(shí)不同的環(huán)境運(yùn)用不同的圖形風(fēng)格,這就造就了現(xiàn)在Java的跨平臺(tái),這就是Java的虛擬機(jī),Java的常量池大大提高了內(nèi)存的使用率,這直接導(dǎo)致了現(xiàn)代生活的方方面面都運(yùn)用了Java,家里的微波爐,機(jī)頂盒內(nèi)的中控程序,Java已經(jīng)融入了我們的生活
我認(rèn)為開(kāi)源的思想是世界最偉大的發(fā)明,是給全世界軟件、網(wǎng)絡(luò)工程師的禮物,而Java的精神就是開(kāi)源的精神,大量的開(kāi)源庫(kù)(Struts、Spring MVC、Spring、Hibernate、MyBatis、DBCP、C3P0、JUnit),Marven倉(cāng)庫(kù)內(nèi)的jar包依賴更是數(shù)不勝數(shù),因此即使有一天它不再輝煌,但是這種精神會(huì)伴隨,直至永恒
大家要記住1995年,因?yàn)槟鞘荍ava的生日,世界從此誕生了一個(gè)編程語(yǔ)言的巨人:Java,經(jīng)歷了時(shí)間的歷練,類(lèi)庫(kù)的增加,Java越來(lái)越多的運(yùn)用到服務(wù)器領(lǐng)域、嵌入式開(kāi)發(fā)、游戲的開(kāi)發(fā),可以說(shuō)大家都對(duì)那個(gè)咖啡杯抱有自己獨(dú)特的情懷。然而咖啡杯本身也有自己的故事
有一天,幾位Java成員組的會(huì)員正在討論給這個(gè)新的語(yǔ)言取什么名字,當(dāng)時(shí)他們正在咖啡館喝著Java(爪哇)咖啡,有一個(gè)人靈機(jī)一動(dòng)說(shuō)就叫Java怎樣,這個(gè)提議得到了其他人的贊同,于是,Java這個(gè)名字就這樣傳開(kāi)了。后來(lái)的JavaBean什么的都是向咖啡致敬
Java的未來(lái)
現(xiàn)代,隨著PHP,node語(yǔ)言的崛起,越來(lái)越多的語(yǔ)言開(kāi)始挑戰(zhàn)Java這位老大哥的位置,新語(yǔ)言(node)的很多實(shí)現(xiàn)其實(shí)已經(jīng)優(yōu)于Java,并且有著更快的開(kāi)發(fā)速度,Java開(kāi)發(fā)也面臨了最大的問(wèn)題:相對(duì)于其它的面向?qū)ο笳Z(yǔ)言,由于嚴(yán)謹(jǐn)導(dǎo)致Java更難學(xué),軟件公司做過(guò)一個(gè)調(diào)查,零基礎(chǔ)上手PHP只要三個(gè)月,但上手Java要半年,我們這邊的上手不是打個(gè)Hello World即可,而是可以參與實(shí)際的業(yè)務(wù)開(kāi)發(fā);另外一點(diǎn)就是開(kāi)發(fā)慢,由于人力成本的提高,很多創(chuàng)業(yè)公司很少會(huì)考慮這門(mén)優(yōu)雅的強(qiáng)類(lèi)型語(yǔ)言,新時(shí)代下的快速迭代,讓Java面臨了很大的挑戰(zhàn)。
但我認(rèn)為Java這門(mén)語(yǔ)言,Java還是尤其適合編寫(xiě)大型的系統(tǒng)。在大型企業(yè)手中不會(huì)末落,正是因?yàn)镴ava的嚴(yán)謹(jǐn),才導(dǎo)致了這么多企業(yè)的ERP、MIS系統(tǒng)都運(yùn)用Java。隨著數(shù)據(jù)越來(lái)越多,公司開(kāi)始邁向大數(shù)據(jù),Java的Hadoop就是一個(gè)比較完美的開(kāi)源解決方案,它對(duì)很多機(jī)器進(jìn)行集成,提前說(shuō)一下,Hadoop也是用Java實(shí)現(xiàn)并且開(kāi)源的哦
我現(xiàn)在的觀點(diǎn):業(yè)務(wù)才是真正驅(qū)動(dòng)編程語(yǔ)言的發(fā)展,正是業(yè)務(wù)的千奇百怪,才誕生了如此多的編程語(yǔ)言,用來(lái)解決特定的問(wèn)題,通過(guò)不同的業(yè)務(wù)選擇不同的語(yǔ)言就顯得非常的重要
作為一個(gè)大型項(xiàng)目,我認(rèn)為Java還是最先的選擇,豐富的類(lèi)庫(kù),強(qiáng)類(lèi)型語(yǔ)言的嚴(yán)謹(jǐn),純面向?qū)ο蟮膬?yōu)雅,Java都有所具備,而且現(xiàn)在的開(kāi)源庫(kù),使開(kāi)發(fā)的速度大大加快;一些網(wǎng)頁(yè)小型項(xiàng)目,就比如需要給用戶做一個(gè)視圖進(jìn)行搜索之類(lèi)的,或者是一個(gè)小型的管理系統(tǒng),你會(huì)發(fā)現(xiàn)PHP就變得如此的適合,它開(kāi)發(fā)速度極快,代碼可以面向?qū)ο?,面向過(guò)程,甚至可以不運(yùn)用開(kāi)源框架就可以完成web小型應(yīng)用的開(kāi)發(fā);如果需要寫(xiě)一個(gè)網(wǎng)絡(luò)爬蟲(chóng),那Python就變的如此的方便;如果你是運(yùn)維,維護(hù)的是Linux,shell腳本和Linux命令就是你平時(shí)的戰(zhàn)斗工具;如果你想嘗新,想試試手,并且做了蠻久的前端工程師,node是你的不二選擇;如果你是單片機(jī)的嵌入式,好吧我對(duì)這些啥都不懂,但是聽(tīng)說(shuō)是萬(wàn)能的C
當(dāng)然,一切最新的計(jì)算機(jī)編程技術(shù),都服務(wù)于業(yè)務(wù),業(yè)務(wù)才是現(xiàn)如今計(jì)算機(jī)發(fā)展的核心,正是業(yè)務(wù)推動(dòng)著計(jì)算機(jī)技術(shù)的發(fā)展,愿幾年后我還能驕傲的說(shuō)出我是Java工程師