專訪Java之父:重回桌面端的榮耀
這12年來,Java繞了一大圈,如今回歸原點。一路看著它發展的James Gosling表示,要讓Java原始的理念發揚發大。
1995年,昇陽公司推出Java,讓網頁瀏覽更圖文並茂,而且在基本的點閱動作之外增添互動功能。本周,昇陽在舊金山JavaOne會議中再推出JavaFX Script程式設計語言,希望能炒熱那個原始的理念。
1990年代,Gosling協助開創出Java程式語言--當初稱為「Oak」。Java從起初只是網頁瀏覽軟體的外掛程式,到後來成為熱賣的伺服器軟體與手機軟體,Gosling一直參與其事。
雖然如今Java使用率十分普及,但就桌上型電腦這類「用戶端」(client)裝置而言,Java起初獨霸的地位已被奧多比(Adobe Systems)公司的Flash軟體所取代。
因此,身為昇陽用戶端軟體事業群的技術長,Gosling表示,昇陽打算展開反攻。他日前接受CNET News.com記者Stephen Shankland專訪時,透露昇陽的計畫,以下是訪談摘要。
問:你可否簡略描述一下JavaFX Script?
Gosling答:JavaFX概括我們的一連串用戶端計畫。有兩項計畫此刻正緊鑼密鼓進行。其中之一是稱為「JavaFX Script」的scripting語言,用來創造動態的使用者體驗,用來製作圖形使用者介面(graphical user interface;GUI),內含豐富的互動、動態活動以及大量的圖片。
問:這些功能用現有的Java也做得到--難道會很困難嗎?
答:可以做得到,但費時甚久。而且,電腦GUI有件事很奇怪,就是傳統上你會想要有一貫性。蘋果、昇陽等公司已發布使用者介面指南,描述按鈕、slider看起來應如何如何。但人們現在想要自己控制外觀的模樣。也就是你看到的應用程式外觀,其實就是某人(不管是誰)為你打造的容貌。如果往來的是一家銀行或某家媒體公司,那麼你跟它互動的應用程式,就象徵那家公司的門面。
問:這就是回歸Java的根本,亦即互動式的網路經驗。這麼解釋,正確嗎?
答:這麼說很正確。不論是「applet」(可下載的小型Java程式)技術,還是2D圖形與Swing (Java圖形介面技術),都是為了達到那個效果。現在人們傾向不用Applets這種技術,沒有特別充分的理由。許多事情原本好好的,但後來卻變得醜陋,惹出一些法律糾紛...
問:是指微軟與昇陽的訴訟,以及反托辣斯訴訟嗎?
答:那的確變得很醜陋,有很多年幾乎扼殺了整個applet的發展。但有個鮮為人知的事實是:applets實在很有用。
問:那麼為什麼現在不做這個呢?現在各家動作頻頻,例如有奧多比的Flash和微軟的Silverlight。
答:這顯然是在同台競技。Java平台有廣大的安裝基礎,而且極具深度。單就Java編碼可在applet程式裡加入的功能而言,Java能做到的遠勝過Flash這些。但就我們來看,真正的問題一直是,儘管已有現成的功能可供利用,但卻難以派上用場。因此,我們努力要把簡單的東西變得更簡而易用。我們已經把棘手的東西做出來了,這方面我們很拿手。過去幾年來,我們一直聚焦於企業領域,讓開發人員更容易打造大型的企業應用軟體。
問:例如股票交易應用程式之類的嗎?
Gosling答:是的。而且這種程式已變得相當不錯。現在,我們將嘗試在用戶端應用程式開發方面做同樣的事。
問:你還提到行動電話。昇陽4月宣布收購SavaJe,這家公司擁有一些行動Java軟體。能不能描述一下JavaFX Mobile和你打算怎麼用它?
答:JavaFX Mobile是一套完整的implementation--從矽晶片以上都用這個程式。但它也可以用在各式各樣的嵌入式裝置作業系統。周二做的示範就是在一款極精簡的嵌入版Linux核心上做的。大多數人都不會認出它是Linux。它是裝置驅動器和插斷處理程式(interrupt handlers),就是這樣。然後,上面是call stack,其餘則全是Java程式碼。我們做這個的一大目的,是提供全套的手機軟體堆疊(software stack)給行動電話製造商。
問:昇陽執行長Jonathan Schwartz曾提到要拉近數位落差。那是JavaFX Mobile想要達到的目標之一嗎?
答:我認為,這些事要分開來看。我們當然希望讓裝置儘可能的小巧玲瓏、價格儘量低廉。在開發度低的地區,他們買得起的東西不多。對他們而言,製造全功能的筆記型電腦,既昂貴又不合用。這些民眾大多是移動的。例如,巴西人與亞馬遜部落族人共事的經驗豐富。要達到那個目標,把外型變小、製造成本降低、生產方式更簡易、與手機系統更容易聯結等,似乎是更吸引人的方式。
問:我記得去年在JavaOne會議上,你對於把Java當開原碼軟體釋出的構想不是很贊同。但昇陽已跨出那一步,你現在怎麼看?
答:我不認為自己不大贊同那個構想。
問:我記得,你懷有一些重大的顧慮。我記得在小組討論會上...
答:是有一些問題需要考量。
問:相容性?
答:我們已把Java原始碼釋出好一段時間了。跟某些行為不當的人,我們之間的互動不佳,導致訴訟糾紛。若是放任不管,市場會四分五裂。我們真的很憂慮那種發展。
問:微軟曾揚言分叉Java--「汙染」它,導致一種用法殊途的版本。
答:那一直是他們玩的遊戲。他們對「互通性」深惡痛絕。但近年來的一大改變,就是開發社群真的很重視互通性。他們很重視能從Mac OS X環境拾起某種應用軟體,然後把它帶往Linux平台、Windows平台還能用的能力。
我們希望,在手機平台上,這種情況會比現在更理想。但是就桌上型電腦以及伺服器而言,我們的情況相當不錯。感覺上,最近市場壓力大,以致大型的行為不佳的業者,想亂來就難了。
問:也就是說,此刻缺乏動機讓Java分叉成不相容的版本?
答:那會遭遇市場強大的反彈。即使當微軟做這種事的時候,他們也遭遇麻煩,因為他們是靜悄悄做的。當你寫程式時,還看不出來你是在寫某種與微軟平台緊密相連的東西。如果你公開講明「我希望這程式與微軟平台緊密相連」,那是一回事;但當他們騙你這麼做,那又是另一回事。
問:Java變成開原碼 後,你怎麼看?得到什麼回響?
答:現在還很難說。從某種方面來看,Java領域這12年來一直在原始碼相當開放的情況下運作。從社群與我們互動的方式,例如JCP (Java Community Process,由一群公司與機構組成的Java標準管理團體),以及原始碼一直都在那兒的事實看來,Java其實一直是相當具有開原碼風格的。
檢視我們現在用的授權方式,那很像是傳統的Mozilla授權。現在,即將改用General Public License (GPL) 第二版,就大多數日常工作來看,這不是太大的轉變。在與社群互動方面,我們總是還有許多事情要做,但我認為,我們會愈做愈好。



