基于JVM的語言開始流行,為Java平臺上多語言混合編程的發(fā)展提供了技術基礎;在實際應用中,每種語言都可以針對自己擅長的方面更好的解決問題;日趨復雜的軟件需求也使得混合編程的應用領域更加廣泛。對于Java程序員而言,混合編程時間已經(jīng)慢慢走近,技術單一化變成了一種危機,這樣的趨勢,你有充足的準備嗎?
最近幾年,基于JVM平臺在編程語言方面發(fā)生了巨大的變化。比如動態(tài)語言(如:Javascript,Jruby,Jython,Groovy)和函數(shù)式與面向?qū)ο蠹婢叩腟cala等。我很高興我們現(xiàn)在有很多選擇,沒有哪個單一語言可以像之前的Java一樣獨占JVM。
在某種程度上,JVM上出現(xiàn)多種語言共存是件好事,一個工具不可能適用所有需求。我們不能指望Java在GUI方面足夠好;就像C語言一樣,Java從來都不是為了開發(fā)動態(tài)Web應用而設計的,但我們還是嘗試使用JSP、JSF和大量的框架來對抗PHP、Rails和Python在Web上的生產(chǎn)力。好在Java對平臺細節(jié)和內(nèi)存管理的抽象層次足夠高。
JVM上的語言百花齊放
在不遠的未來我們將會看到,我們的項目中,并行進程用Clojure編寫,展示層使用Jruby/Rails,中間層是Java。每個應用層都將使用不同的編程語言實施,然而,接口對每一層的開發(fā)者都是透明的。這是個大事,客戶端和服務器將使用不同的運行時和編程語言,在之前的Java平臺上前所未有。
這對于Java開發(fā)者意味這什么呢?
◆對于Web開發(fā)者而言,你將要學習很多與Struts、JSF、JSP不同的東西,我們的開發(fā)不再是model1、model2和MVC。
◆對于非Web開發(fā)者而言,你所寫的代碼可讀性將更強,并且可以采用上面所提到的任何一種語言來打造適合你項目的DSL;而且,你無需擔心偶爾的復雜性以及框架會影響到你的項目。
Java平臺開發(fā)者的生活(或履歷)將會改變,他們將興奮于現(xiàn)在不只一種編程語言可以使用,而不是只有框架。我從來不認為Java語言將走向滅亡,不是因為現(xiàn)存的大量API庫是使用Java編寫的,而是因為地球上知道Java的程序員太多了。工具支持Java、本地JVM支持Java(譯者注:指運行在JVM上的基礎軟件)。Java會像C語言一樣,你能做的任何事都將被潛在的支持,成為一個基礎平臺。