Java之父:我們看中的并非Java語言,而是JVM
Java之父James Gosling近日接受了著名IT網站eWEEK高級編輯的采訪,談論了Java的創新方向、Java平臺的未來、Sun的傳統和新的Java應用商店等眾多話題。
Q:你怎么看待Google對Java的使用,或者說他們使用的Java子集?
A:Google非常古怪。它們有種“優越感”。
現在很難說Google推Android的意圖是什么。該平臺的免費可能是最大的吸引力。但是據我所知,人們都在閉門開發自己的Android手機,導致目前所有的Android手機都互相不兼容。
保持兼容性正是我們收取授權費的理由之一,我們需要組織一群人來進行兼容性測試,以及在不同的手機廠商之間進行協調,確保諸如GPS API之類的東西保持一致。Android世界在收費方面還沒有成熟。所有的手機廠商在按照自己的意愿開發,這意味著秩序的混亂。你可以說這是百花齊放,但也可以說是一塌糊涂。據我看來,一塌糊涂的可能性更大。(而相對應的,在前幾周51CTO報導的谷歌開發者日2009現場上,谷歌全球副總裁、大中華區總裁李開復先生對Android評價很高,認為多樣化以及簡單化的開源平臺將越來越占優勢。他也認為統一規范是重要的,并認為開放手機聯盟將推動規范的統一。)
Q:你認為本屆JavaOne大會上最重要的事件是什么?
A:我們現在處于一個所有事物都緊密相關的時代。在最近幾個月中我花費時間最多的是Sun的Java應用商店。對我來說,這是一個重大的事件。它與我們之前看到的任何應用商店都不同。另外,JavaFX目前的發展要好于我的預期。我們剛剛推出JavaFX時,希望它能被應用在各種聯網設備上,當時人們認為我們是在開玩笑。
51CTO相關報導:JavaOne 2009揭示Java領域幾大趨勢
具備Java功能的LG電視,實際上就是在Java商店中發布的一個產品。盡管它只在韓國出售,因為它是針對韓國市場的一個有線電視機頂盒產品。但是它已經成為有線電視機頂盒的標準,它具有非常健壯的Java引擎,該設備可以非常好的運行JavaFX。這只是其中一個例子,我認為JavaFX不久后將會被應用在各種設備上。
一兩年前人們認為我們在開玩笑。事實上,未來還有更多使用JavaFX的產品。現在我們能夠以CE廠商的價位來完成這個工作,這是一個令人吃驚的事實,如果你把所有這一切加在一起,它將轉化為一個讓人難以置信的巨大市場。Java應用商店的難點在于管理部署的過程。今天你看到的應用商店管理桌面計算機上的應用部署,但不久之后你會看到它將擴展到手機和有線電視機頂盒等眾多領域。我們不會直接進行手機業務,更可能與手機運營商聯手。
Q:現在Java的創新在什么地方?
A:創新發生在Sun內部的每一個角落。他們在你希望看到的任何方向研發非常酷的技術。GlassFish團隊正在迅猛發展。OpenDS已經真正取得成功。而OpenJDK也引起了人們真正的關注。而Jigsaw模塊系統也有一些令人興奮的地方。(欲更多的了解Jigsaw項目,可參考51CTO整理的Jigsaw項目簡介:Java 7的新模塊系統一文)
Q:Jigsaw項目是OSGi的一個補充還是不同的另外一個項目?
A:我認為兩者兼而有之。OSGi是一種不同領域模塊化的項目,它涉及范圍非常廣。因此我們需要一個更輕量級的標準。
51CTO編輯推薦閱讀:OSGi為什么重要:向模塊化轉移的主攻手
Q:那么說它與OSGi具有相同的功能?
A:是的。不過它還包含了一些與OSGi毫不相關的一些東西。
Q:據我所知,Eclipse在支持OSGi方面做的很好,許多企業Java廠商也正在推廣它。
A:甚至我們也在使用它。但是它在小領域表現并不好。我認為它過于臃腫。
Q:接下來會發布什么語言?人們說JVM現在支持所有語言了,其中一個或將取代Java。
A:或許。實際上我希望如此。Java不能永遠不會迎來替代者。但是我們看中的并非Java語言,而是JVM。事實上我們可以讓所有語言一起工作。你可以編寫JRuby代碼與Scala代碼進行高性能交互,它可以非常平滑的實現。JVM是實現這一點的關鍵所在。(有關Gosling所說的這點,可參考基于JVM的語言正在開始流行一文,以及51CTO的Scala編程語言專題和Groovy開發技術專題)
Q:因此你更能認可今天的動態語言?
A:我不知道“認可”一詞是否恰當。在恰當的時間和恰當的地方,我認為它們是非常偉大的。不過,由于它們中多數都進行了設計決策,導致有時運行過慢。
Q:你們在軟件中采取什么措施來處理并行性問題?
A:在Java本身中,就有存在并發庫,而且它們都非常成功。在企業版中,其框架已經讓人們可以很好的進行并行編程。而且這些框架實際上還可以為人們完成一些自動并行化處理。用戶編寫了一個順序模塊后,最后它會自動被并行化。但是對于諸如在大規模多線程機器上執行的科學計算這類應用來說,這確實是一個很大的問題。因此才有了Fortress語言的誕生。(相關閱讀:Java 7將向細顆粒并行化發展)
Q:那么說這并不是工具的問題?或者說工具有助于解決這個問題嗎?
A:最近30年以來,處理多線程編程問題一直是博士論文討論的話題,但是至今還沒有一個殺手級的解決方案。因此現在才存在各種各樣我們可以借助工具完成的東西。如果你研究一下NetBeans,就會發現其中有許多東西是用來監視線程、監視線程背后的數據、監視阻塞。對于幾百個線程的程序來說,這些工具效果可能還不錯。但如果你要處理成千上萬的線程,它們就力不從心了。
Q:另一個問題是,什么時候我們能看到Java的新版本?
A:我曾經希望是去年。但是Neil Gafter(一位以研究Javafx未來發展為愛好的微軟的工程師)所做的工作因為可笑的原因而丟失。而Google首席Java架構師Josh Bloch又莫名其妙的反對,導致未能如我所愿。如果沒有獲得同樣熱情的社區反應,現在還很難說我們何時進行下一次推出新版本的嘗試。(51CTO編輯推薦:Java EE 6遙遙無期 預覽版兩極分化)
Q:據你所言,你對JavaFX的被選用印象深刻。你是否感覺你們獲得了這款RIA產品的成功?
A:我不這樣認為。我們有很多地方需要改進。但是我感到滿意的是我們正處在正確的方向。我們成功的將其與Adobe工具整合。JavaFX未來將可以被廣泛的應用于不同的設備商。(推薦閱讀:JavaFX對Java開發者到底意味著什么)
Q:Java是否會成為云計算的一個平臺?
A:從第一天開始,人們就一直在Java中進行云計算之類的事情。與云類似的事情已經成為我們所有工作的一部分。Kenai項目是我們的開發者云。而且與NetBeans整合的實際上還運用了REST API,這是一件非常時髦的事情。我們也是最近六個月才開始進行這個工作的。
原文:Gosling: What's Good for Google May Not Be Good for Java
【編輯推薦】