Java 7是蜜糖還是毒藥?
原創(chuàng)【51CTO觀察】2011年7月28日,甲骨文沒(méi)有食言,如期發(fā)布了Java 7。盡管這一次不是完全發(fā)布,但跳票王Oracle還是沒(méi)有讓大家失望。全球的Java愛(ài)好者自然是下載并試用,忙的不亦樂(lè)乎。各大IT專業(yè)網(wǎng)站也都在自己最顯耀的頭條位置發(fā)布了這一新聞,輔以各種Java 7專題和文章,從新特性到研發(fā)歷史講了一個(gè)通透。
Java 7是毒藥?
但是大家的興奮勁還沒(méi)過(guò)三天,就有人爆料Java 7中BUG不少。有甚者宣稱,大家還是珍惜生命,遠(yuǎn)離Java 7為妙。這Java 7究竟是蜜糖還是毒藥?
我們先離開(kāi)Java 7,去看一位同樣從Sun歸到Oracle的朋友——MySQL。在Oracle鯨吞Sun不久,MySQL 5.5如期來(lái)到人們面前。大家的態(tài)度是怎樣的呢?
質(zhì)疑,都在質(zhì)疑。數(shù)據(jù)庫(kù)管理員們最看重的是安全性和穩(wěn)定性,但這次MySQL 5.5的發(fā)布讓他們的疑惑更重了。還沒(méi)有做好完全的安全測(cè)試,很多新功能就推出了,這讓很多人不敢嘗試,生怕因此丟了飯碗。
我們回到Java 7,在Uwe Schindler的文章中稱,Java 7的HotSpot Loop optimizations存在一些非常可怕的默認(rèn)啟用的bug。***的情況下,這些bug會(huì)導(dǎo)致JVM崩潰,最壞的情況下,會(huì)導(dǎo)致loops的不正確的執(zhí)行。而Schindler給出的唯一的解決方案就是,不用loops。
隨后有文章就對(duì)此進(jìn)行了辟謠,聲明這種BUG出現(xiàn)的原因是某些特定的loops造成。優(yōu)化的選項(xiàng)BUG在Java 6中就有出現(xiàn),只不過(guò)Java 7中把這個(gè)選項(xiàng)作為默認(rèn)啟動(dòng)才會(huì)如此引人注目。事件似乎就到此為止了。但Java程序員從中隱約看到Java 7似乎存在成為毒藥的潛質(zhì),有朝一日會(huì)不會(huì)摧毀整個(gè)軟件開(kāi)發(fā)項(xiàng)目?
Java 7是蜜糖
新事物的出現(xiàn),用戶確實(shí)需要以寬容的心情來(lái)對(duì)待。Java 7的進(jìn)步還是顯而易見(jiàn)的。
在51CTO對(duì)此的調(diào)查中,有46%的Java 程序員表示會(huì)試用Java 7,有35%的程序員看好Java 7的前景。只有5%的Java程序員覺(jué)得Java 7與之前的版本差別不大。
從Java 7的新特性中,比如自動(dòng)化資源管理(即ARM)能力,這個(gè)能力是Java 7特有的,目前使用Java 6的朋友在編譯時(shí)很多庫(kù)都需要重新編譯以適應(yīng)Java 6的需要。其目的在于當(dāng)遇到錯(cuò)誤或是成功執(zhí)行完代碼塊后能夠輕松處理好外部資源。這樣的進(jìn)步還是能在一定程度上解放Java程序員的生產(chǎn)力。
Java 7相關(guān)新特性請(qǐng)點(diǎn)擊這里閱讀。
更多的新特性還需要各位Java程序員去一點(diǎn)點(diǎn)嘗試。究竟何時(shí)能把Java 7部署到生產(chǎn)環(huán)境,樂(lè)觀估計(jì)會(huì)是幾個(gè)月的時(shí)間。
Java 7到底是蜜糖還是毒藥?
無(wú)比美妙的Java 7已經(jīng)呈現(xiàn)在我們面前,更多人性化的功能似乎預(yù)示著Java程序員可以少加班多陪陪女朋友了。也還是有不少評(píng)論員擔(dān)心,這Java 7只是裹著蜜糖的毒藥。
期待不要更多的BUG,雖然現(xiàn)在發(fā)現(xiàn)的BUG還只是極端現(xiàn)象。但人們還是擔(dān)心Java 7是為了趕工期倉(cāng)促推出,預(yù)期在Java 7***個(gè)update會(huì)更加穩(wěn)定一些。
新的編程習(xí)慣讓Java 程序員要費(fèi)力適應(yīng)。上面提到的ARM特性,就需要Java 6時(shí)代的程序員慢慢適應(yīng),并最終期待Java 8時(shí)會(huì)有完善的功能出現(xiàn)。
生產(chǎn)環(huán)境的大變化,盡管Java 7還沿襲了之前的道路。就像Java的對(duì)手.NET一樣,從Visual Studio 2008升級(jí)到Visual Studio 2010還是要經(jīng)歷一個(gè)短暫的陣痛的。有用戶會(huì)因?yàn)楦鞣N類無(wú)法加載而頭疼。
新的語(yǔ)言支持將起到反作用,有Java程序員就表示Oracle需要在開(kāi)發(fā)效率上下功夫,而不是無(wú)端給平臺(tái)增加負(fù)擔(dān)。讓對(duì)手更少的唱衰Java。
Java 7到底是毒藥還是蜜糖,您怎么看?
【編輯推薦】