歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> Linux文化

開源培養出可靠而且更安全的軟件—Java之父James Gosling的看法


開源培養出可靠而且更安全的軟件。——這是Java之父James Gosling的看法。他目前依然在Sun從事軟件開發研究工作,並在調校他十幾年前所創造的語言和平台的發展戰略。

Silicon.com最近有機會與Gosling就Sun決定發布GPL(通用公共許可)下Java的決定,開源是不是比專有權軟件更安全,IT部門如何縮減開發成本,以及微軟為什麼依然把持桌面系統市場等問題進行了探討。 問: Sun開始接納開源軟件。您為什麼會對Java敞開大門? Gosling:之所以選擇Java是因為有多種原因。其中之一就是要讓人們在很多場合使用Java,讓人們為平台和其他一些設施上開放端口。

最主要的原因之一就是我們與開源社區的合作更多了,社區裡的人們從修補漏洞到安全審計幾乎無所不能。Java之所以在安全性方面如此成功的原因之一就是我們讓太多的人能夠看到源代碼。

我們做過大量的測試和設計工作,但是沒有什麼工作能夠比得上讓幾千雙精干的眼睛一起盯住軟件,共同思考。

但是直到去年十一月,Sun才宣布將發布GPL下的標准開源許可Java。

Gosling: 很長時間以來,Java的源代碼是屬於任何人的。直到最近才出現了許可。許可中說:“源代碼公開,但是在通過測試之前,不得將自己所進行的修改對外發布。”

為此我們遭到了開源社區的猛烈批判。我們認識到圍繞測試、互操作性和可靠性的市場壓力相當大。許可中的條款沒有什麼用。於是我們換用GPL許可。

“對於企業來說最大的威脅來自人性天生的不可靠和懶惰”

什麼時候會轉換到GPL? Gosling: 我們依然處於實施階段。我們期望能在五月份全部完成。 你是否相信開源開發模式天生具有更高的安全性? Gosling: 是的。因為這是能夠信任某個軟件的唯一方法。安全是很難進行測試的。因為你不會測試你的設計作品是否安全。你必須這麼做,必須找出是否有裂縫?設計層上是否存在缺陷?而且沒有自動測試技術。一切都無法替代那些戴上黑色帽子的人,他們說:“我來試試。”然後他們就那麼做了。

10年前,人們出於合作精神而偶爾涉足Java。我的有些同事發現了缺陷,我們馬上就進行了修復。從來沒有發生造成實際損失的安全問題。世界上沒有Java防病毒軟件,因為根本就不需要。全世界的專家們為我們詳細審查了12年。

對於設計語言、軟件和平台的人來說很難全方位的預計到別人的闖入方式。

Gosling: 的確如此。因此在設計測試時,測試定會受到你所預想的人們闖入方式的限制。你所設計的測試能夠阻止任何你已知的闖入方式。你可以坐下來考慮新的闖入方式。但是無論如何你的想法都不會比外面數以千計急於在博士論文中添上一筆的研究生們的想法更有創造力。

隨著時間的繼續,是否會看到更多開源技術在企業領域中的應用? Gosling: 是的。從開源操作系統到數據庫,從編程語言到開發工具,有一個臨界點就是已經有很多人在使用,所以很難設想有更多人使用的情況。現在正在接近這個臨界點。有些領域,比如大規模數據庫和ERP還沒有嚴格的開源ERP解決方案。開源社區正在向這一領域努力。

您認為對於企業來說最大的威脅來自哪裡? Gosling: 對企業來說頭號威脅當屬人與生俱來的懶惰和不可靠。我們能夠把軟件設計的天衣無縫,但是如果有人說設備的根秘碼“完全無關緊要”,任何人都能夠進入並登錄設備。

你要知道有多少人會為了省事做類似的事情,一定會大吃一驚。世界上到處都有關於IT的操作,企業員工對安全措施厭煩了,就會一關了之。

甚至他們可能會做相當傻的事情,比如他們會在筆記本電腦中保存企業客戶數據庫,並在度假期間將筆記本電腦遺失。

你認為要推行嚴格的安全政策主要責任在IT部門嗎?您覺得時候有什麼方法能夠減輕他們的工作? Gosling: 我們投入了很大精力來使安全政策盡量易於管理。我們希望能夠確保安全政策不要過於繁重,不會導致IT部門的怠工。

Java和Solaris (Sun的Unix操作系統)總有多內容都是要使銅牆鐵壁般的系統更容易使用。但是在某些場合,對人們的懶惰沒有限制。

Java技術的第一個實際應用是為為消費者電子學進行開發。 你對Java抓住企業機會的方法感到驚訝嗎? Gosling:Java能夠用於企業開發並不讓人吃驚,因為其本身就是專為處理大規模服務器操作而設計的。倒是企業對Java的接受程度讓我有些吃驚。

您能舉個例子麼? Gosling: 比如Java在旅游行業Sabre和Orbitz公司中的大規模應用。比如FedEx 這樣大量使用Java技術的企業,如果不用Java代碼就無法通過FedEx發送郵包。如果不使用Java代碼幾乎就無法進行銀行交易。

“如果不用Java代碼就無法通過FedEx發送郵包。”

說說您見過的最有趣的Java應用吧? Gosling: 我對科技領域內的事情更有興趣。最近火星漫游者正在火星附近徘徊,地面控制系統就有很多Java代碼。或者世界上最大的望遠鏡,Keck望遠鏡。它的控制系統中有大量的Java代碼。沒有比這更酷的應用啦!

軟件開發成本一直都是IT預算中的重頭。有沒有可能降低開發成本? Gosling: 沒有。我的回答“沒有”可能有些不好理解。我的職業生涯中絕大部分時間都在研究幫助開發者降低成本的工具,使開發者的工作效率更高,更多產。一般來說這樣的工具都是有效的。但是觀察IT部門的開銷,我們會沮喪的發現IT部門的開銷並沒減少。 我曾經觀察過這個有趣的現象。如果使用良好的軟件開發工具,減輕開發者的工作使他們能夠更快的完成工作,那麼經理們首先會說的一定是:“你現在有空的話,再把額外的工作也做了吧。”

這麼說IT部門開銷不變但是工作成果更多? Gosling: 如果你觀察IT部門今天的工作,會發現其中一大部分工作在5到10年前是沒有的。過去沒有網上銀行,沒有在線股票交易,沒有網上旅游業務,一切都不一樣了。人們對IT的需要總是超過IT部門所能提供的。 所以很可能每個IT部門都處於崩潰的邊沿。如果超過崩潰線,IT部門崩潰了,事情弄得一團糟。如果沒有到達崩潰線,工作會簡單一些,但是人們會說:“我們能做的更多。”

在某種意義上來說我自己認命了。在象我這樣的工具開發者中,節省IT成本幾乎等同於讓IT部門做更多的工作。

綜觀當今的各種開發工具,您覺得還缺少什麼工具,哪個是必需的工具? Gosling: 目前的焦點已經從語言轉移到了開發環境和編程界面。開發語言就象集線器,將各個方面接合在一起。過去幾年中,企業軟件開發中最有趣的進步是工具的進步以及IDE (集成開發環境)。

你認為這是一種好趨勢麼?你是否認為我們需要新的語言?或者說你認為目前的語言是否夠用? Gosling: 目前的語言的確不錯。過去也曾出現一些編程語言,但是這些語言應用范圍比較狹窄。比如Ruby 和 PHP非常適於生成網頁。如果超過它的應用范圍,就會很麻煩。對於企業應用來說,頁面更象是實際應用的外表。大部分的腳本語言在高性能、大范圍計算中的表現差強人意。

您認為會影響企業IT的下一個重大技術創新可能是什麼? Gosling: 現在有很多技術是關於多線程的。例如,摩爾法則的計算標准已然從時鐘頻率轉變為內核數量。這意味著人們必須更多的理解建立多線程應用的意義。

你認為微軟還能繼續保持他們的市場統治地位嗎? Gosling: 微軟在很長一段時間內統治著企業桌面系統市場,他們的確擁有統治權。說起來相當奇怪,即使每個人都在抱怨微軟產品的安全問題,並且將防病毒產品升級到最新版本。我們為什麼要使用需要防病毒軟件的設備?我不理解為什麼幾乎人人都用Outlook。“嚴格來說我不是研究Vista的行家。但是它看起來的確讓人厭煩。”

你在開發時使用那些工具? Gosling: 我會交替使用Solaris 和 Mac OS X。這些系統是真正安全可靠的。他們不會掉鏈子。

微軟在桌面系統以外的市場上有什麼優勢? Gosling: 在其他市場上微軟沒有桌面系統市場上控制企業服務器的那種身手。過去幾年中他們嘗試利用在服務器空間中對桌面系統的壟斷。取得了一些效果。

你對Vista怎麼看? Gosling: 我更願意對微軟(的軟件)退避三捨,因為它們可能成為毒藥。嚴格來說我不是研究Vista的行家。但是它看起來的確讓人厭煩。Vista是如此的華而不實。花很大的價錢卻買不到什麼有價值的東西。


Copyright © Linux教程網 All Rights Reserved