Java程序員的未來 走向混合編程時代
原創【51CTO觀察】編者注:本文摘自一位美國開發者的博客,作者Nirav觀察到Java世界一些有趣的變化,單一的Java開發已經無法滿足當前軟件復雜的需求,越來越多基于JVM的語言開發被應用到軟件項目中,Java平臺上的多語言混合編程正成為主流。
在09年的JavaOne大會期間,51CTO曾報道過Java領域的幾大趨勢,多語言、混合編程的發展便是其中的重點。基于JVM的語言正在開始流行,這為Java平臺上多語言混合編程的發展提供了技術基礎;在實際應用中,每種語言都可以針對自己擅長的方面更好的解決問題;日趨復雜的軟件需求也使得混合編程的應用場景更加頻繁。對于Java程序員而言,技術單一化正變的危險,因為你周圍的世界已經變得復雜;混合編程時代已經到來,你準備好了嗎?
最近幾年,基于JVM平臺在編程語言方面發生了巨大的變化。比如動態語言(如:Javascript,Jruby,Jython,Groovy)和函數式與面向對象兼具的Scala等。我很高興我們現在有很多選擇,到目前為止,我不認為某個單一語言可以像之前的Java一樣獨占JVM。
在某種程度上,JVM上出現多種語言共存是件好事,一個工具不可能適用所有需求。我們不能指望Java在GUI方面足夠好;就像C語言一樣,Java從來都不是為了開發動態Web應用而設計的,但我們還是嘗試使用JSP、JSF和大量的框架來對抗PHP、Rails和Python在Web上的生產力。好在Java對平臺細節和內存管理的抽象層次足夠高。這些基于JVM的新語言在各自的領域內也隨之可以更進一步的抽象。
在不遠的未來我們將會看到,我們的項目中,并行進程用Clojure編寫,展示層使用Jruby/Rails,中間層是Java。每個應用層都將使用不同的編程語言實施,然而,接口對每一層的開發者都是透明的。這是個大事,客戶端和服務器將使用不同的運行時和編程語言,在之前的Java平臺上前所未有。
這對于Java開發者意味這什么呢?
◆對于Web開發者而言,你將要學習很多與Struts、JSF、JSP不同的東西,我們的開發不再是model1、model2和MVC。
◆對于非Web開發者而言,你所寫的代碼可讀性將更強,并且可以采用上面所提到的任何一種語言來打造適合你項目的DSL;而且,你無需擔心偶爾的復雜性以及框架會影響到你的項目。
Java平臺開發者的生活(或履歷)將會改變,他們將興奮于現在不只一種編程語言可以使用,而不是只有框架。我從來不認為Java語言將走向滅亡,不是因為現存的大量API庫是使用Java編寫的,而是因為地球上知道Java的程序員太多了。工具支持Java、本地JVM支持Java(譯者注:指運行在JVM上的基礎軟件)。Java會像C語言一樣,你能做的任何事都將被潛在的支持,成為一個基礎平臺。
后記:本文是作者對Java平臺混合編程的變化趨勢給的一些體會和觀點。事實上,混合編程在我們身邊已經有所應用并被廣泛認可。讓每種語言發揮在自己擅長的領域,更直接的解決問題是當前軟件開發應對日趨復雜的項目需求的一個方向。
在《尋找成為開發高手的密匙》一文中,我們強調過技術的“廣度”和“深度”,其中的廣度意味著在技術方面可支配的工具、技能和方法廣泛的多。這也在另一個方面肯定了多語言混合編程的使用對開發者技術水平提高的作用。
【閱讀推薦】