Java開放后的兼容性問題

    談到這個(gè)問題,Sun的技術(shù)官員做了詳細(xì)的解釋,讓我們?nèi)玑屩刎?fù)。


    首先說一下開源和開放技術(shù)之間是有區(qū)別的。Sun宣布這次開放源代碼這個(gè)項(xiàng)目之前,實(shí)際上Java的規(guī)范是開放的,什么意思呢?通過Java社區(qū)組織開發(fā)出或者制定出來所有的Java規(guī)范,各種各樣的Java規(guī)范都是開放使用的,可以免費(fèi)下載的。相關(guān)的為了實(shí)現(xiàn)這些規(guī)范,所有的一些參考實(shí)踐也是開放的,有一些參考實(shí)踐是“源碼”的形式,有些是“二進(jìn)識(shí)碼”的形式開放的,對(duì)這種開放的可以實(shí)現(xiàn)Java規(guī)范,不管你用不用參考實(shí)踐,可以不用參考實(shí)踐自己去實(shí)現(xiàn)這個(gè)規(guī)范,也可以根據(jù)參考實(shí)踐去實(shí)現(xiàn)這個(gè)規(guī)范來做出產(chǎn)品,這都是可以的。這樣也同樣存在一個(gè)兼容性的問題,大家都說按照規(guī)范做的產(chǎn)品,到底是不是按照規(guī)范去做了呢?怎么來檢測(cè)呢?這就是Java規(guī)范三位一體,除了規(guī)范的文本和參考實(shí)踐之外,還有一個(gè)兼容性測(cè)試工具,兼容性或者叫復(fù)合型測(cè)試套件。TCK做什么,就是任何人要實(shí)現(xiàn)一個(gè)Java規(guī)范,實(shí)現(xiàn)之后要說它是一個(gè)Java產(chǎn)品,換句話要說這個(gè)產(chǎn)品和Java規(guī)范要符合,必須要通過TCK的測(cè)試,才能叫是Java兼容性的產(chǎn)品。不管開源不開源,兼容性的問題都是靠TCK的測(cè)試來解決的。Sun公司開放的源碼是什么含義呢?真正含義是Sun公司開放了根據(jù)Java規(guī)范自己做的商業(yè)代碼,自己Java的產(chǎn)品的源碼的開放,不是參考實(shí)踐的源碼的開放,而是Sun公司自己對(duì)Java規(guī)范商業(yè)實(shí)現(xiàn)源碼的開放。今后不管是Sun公司還是別的公司根據(jù)Sun公司開放的這套源代碼去做產(chǎn)品的時(shí)候,都必須通過TCK的測(cè)試。不管是誰的產(chǎn)品,通過TCK測(cè)試之后,從理論上說是兼容的,所以TCK測(cè)試這個(gè)模式是沒有改變,來保證它的兼容性,是這樣解決這個(gè)問題的。


    Sun將Java推向了公眾,是不是意味著公司以后的投入會(huì)減少呢?


    對(duì)于Java的支持其實(shí)比較來說會(huì)不會(huì)減少,我覺得事實(shí)上從我們剛才提到“水漲船高”的概念來講,如果說一個(gè)環(huán)境,我們獲得的利益更高的話,我們當(dāng)然會(huì)投入更大。Java的發(fā)展不斷地?cái)U(kuò)展,Java雖然現(xiàn)在相對(duì)地穩(wěn)定,但是我們還有很多方面需要不斷地改進(jìn),符合用戶的需求。比如說我們手機(jī)在過去幾年的進(jìn)步速度非??欤谑謾C(jī)方面的Java規(guī)范,以及我們參考實(shí)施都是需要不斷的改進(jìn)和不斷的投入。除了手機(jī)之外還有不同的工具的出現(xiàn),也需要我們不斷地在Java方面進(jìn)行更大的投入。所以在這方面Sun決定會(huì)在Java方面繼續(xù)把它作為Sun公司最核心技術(shù)的組成部分,會(huì)不斷地投入大量的支持,跟我們技術(shù)的力度能夠讓Java真正的,不僅僅是在開源環(huán)境里,在商業(yè)應(yīng)用里也會(huì)持續(xù)地、不斷地?cái)U(kuò)展,為大家所接受。


    說到Java的推廣,人們首先想到的就是開源的Linux,目前在中國的情況不能讓大家都樂觀,那么,未來的Java如何做中國這個(gè)市場呢,畢竟,中國的情況跟國外還不相同。


    因?yàn)殚_源是一個(gè)地區(qū)或者說我們講一個(gè)國家,現(xiàn)在開源的許可證里都是全面性的,所以開源的社區(qū)不是存在在某個(gè)地方,是存在Internet,它是沒有國界的。所以,所謂因地制宜的概念,我們?cè)S可證的方式是推廣的方式,但是一個(gè)開源社區(qū)的推廣是來自于這個(gè)開源的參與者。也就是說今天我們很多媒體可能會(huì)想,Java是Sun開源的,Sun要在中國推廣Java,Sun是絕對(duì)需要在中國推廣Java,但是在中國推廣Java的責(zé)任是所有在中國參與到Java開源社區(qū)的,利用開源社區(qū)進(jìn)行更一步的IT技術(shù)發(fā)展的所有人。對(duì)于社區(qū)的概念很重要,當(dāng)我們把一個(gè)技術(shù),像開源,本身第一個(gè)擔(dān)心的就是這個(gè)公司對(duì)于技術(shù)的掌控權(quán)沒有,但是這個(gè)掌控權(quán)是另外一個(gè)概念。


    像微軟,微軟的開源,微軟講開放講很久了,開放軟件、開放源代碼,說可以給12個(gè)人訂機(jī)票去看它的軟件開放,這可能就是它對(duì)中國的因地制宜,這就是微軟式的開放政策。這跟我們?cè)贗nternet環(huán)境里,大家所公認(rèn)了解的開源開放是有非常大的距離。但是Sun絕對(duì)是在開源的領(lǐng)域是占先鋒的地位,我們不僅僅依照現(xiàn)在開源社區(qū),因?yàn)樽罱泻芏郤un的許可證方案,訂立開源社區(qū),把它創(chuàng)建起來、發(fā)展起來。Sun公司是開源社區(qū)的一分子,今天要把我們的軟件放到開源社區(qū)的話,我們也要符合開源社區(qū)的規(guī)范做這樣的事情。許可證是一個(gè)問題,是經(jīng)過很久考慮的問題。Sun已經(jīng)做了這個(gè)決定,被大家所接受。


    在中國我們?cè)趺醋瞿兀?/STRONG>


    在中國我們希望說,在中國是政府行政的力量比較大的社會(huì),在這個(gè)社會(huì)里這樣開源社區(qū)的形成,可能跟其他國家形成的方法會(huì)有所不同,因?yàn)樵谄渌膰彝耆亲韵露系?,社區(qū)自然而然通過Internet所有的參與者和開發(fā)人員來形成社區(qū),在中國如果有政策的支持或者我們國家的行業(yè)協(xié)會(huì),我們國家的行業(yè)協(xié)會(huì)大家都理解,我們國家的行業(yè)協(xié)會(huì)是半政府性質(zhì)的,不是純粹像國外的行業(yè)協(xié)會(huì)是純粹民間性質(zhì)的。在這樣的環(huán)境之下,有政府行政力量的因素,對(duì)社區(qū)的發(fā)展有一個(gè)大的助力,中國又是一個(gè)IT相對(duì)落后的國家,我們?cè)贗T發(fā)展的起跑線上我們已經(jīng)輸了很多,在這樣開源社區(qū)的發(fā)展之下,如果政府不能夠加點(diǎn)油或者推一把,我們的發(fā)展不一定能夠趕得上其他國家的發(fā)展。也許我們落后的程度可能反而會(huì)越來越大。陸總提出來開源的因地制宜的方法,從中國具體的社會(huì)狀況,從IT發(fā)展階段來看應(yīng)該是鼓勵(lì)我們有一個(gè)政府或者是半政府的組織的參與,鼓勵(lì)開源社區(qū)能夠快速的發(fā)展,能夠透過開源社區(qū)的發(fā)展,來提高我們中國IT的步驟。


    在政府參與里牽扯到具體的許可證的問題,這個(gè)問題事實(shí)上陸總提到采用混源有一些變更的辦法來做,像Sun公司Solaris開源,是用GBDL是混源的方式,因?yàn)镚BDL可以你根據(jù)開源代碼開發(fā)軟件的這些人,不需要再把代碼公布,所謂混源,開放源代碼有的是二進(jìn)位的代碼,可以跟源代碼混合發(fā)布,GPL的特點(diǎn)一定是開源代碼發(fā)布,對(duì)于GPL社區(qū)里的人是非常堅(jiān)持的,如果做不到這一點(diǎn),是不會(huì)用這個(gè)來發(fā)布的。我們講的Linux,為什么我們很多的技術(shù)沒有辦法作為Linux的方式統(tǒng)一發(fā)布,就是因?yàn)槿绻徊捎肎PL的方式,Linux是絕對(duì)不會(huì)把它放在里面。這樣的概念是符合Sun公司在考慮許可證有很多這樣的需求,因?yàn)楸热缯f我們政府的某些機(jī)構(gòu),利用政府的資源來開發(fā)源代碼,他不希望完全把它開源,或者有一些企業(yè)進(jìn)行一些開源,他覺得要進(jìn)行某些保護(hù),事實(shí)上我們今天在GPL里有一部分例外,我還是有這個(gè)可能我只是把二進(jìn)位的代碼公布,不公布源代碼,但是有相應(yīng)的條件,有一定混源的要求的。GBDL是比較符合混源的要求,我們看到這個(gè)相對(duì)于在世界上開源社區(qū)的人,對(duì)于GBDL存在一定的排斥,他們認(rèn)為GPL是比較多的人使用方式,尤其是在Linux方面。大多數(shù)人采用GPL的方式,經(jīng)過多數(shù)人的考量,我們覺得在Java的開源方面,采用GPL的方式最能夠保證Java未來的兼容性,因?yàn)楫?dāng)所有源代碼都公布的時(shí)候,有一個(gè)廠家或者某一個(gè)社區(qū)想要去改變就很困難,因?yàn)榇蠹铱梢钥吹胶茈y改變Java的兼容性,這個(gè)問題就解決了Java發(fā)生問題的兼容性。在這方面陸總的話有很明確的道理在里面,我認(rèn)為中國的開源需要有政府以及半官方的力量協(xié)助,才能夠改造世界整個(gè)開源的潮流跟進(jìn)度。
  
    Sun比較能夠在著眼于中國方面,從許可證本身做了一些考量,但是我們推廣的問題,當(dāng)然我們跟中國政府,并不是說跟中國政府有不同的方法或者說不同的社區(qū),整個(gè)社區(qū)是存在虛擬空間的,不存在社區(qū)的問題,最主要讓中國的業(yè)界包括我們政府指導(dǎo)我們行業(yè)的主管機(jī)構(gòu),還有官方的行業(yè)機(jī)構(gòu)都能夠了解許可證的含義是什么,了解它能夠扮演什么角色,Sun作為許可證的發(fā)布者和作為Java的推廣者,我們當(dāng)然可以主動(dòng)跟政府做這個(gè)事情。但是已經(jīng)是開放的東西,事實(shí)上就不是自己擁有的,Sun公司把所有的源代碼給中國政府,這是沒有意義的。因?yàn)檫@個(gè)東西已經(jīng)直接開放了。我是說政府支持的這些研究機(jī)構(gòu)和國有企業(yè)都可以直接從網(wǎng)上參與到這個(gè)社區(qū)的發(fā)展。


    如果對(duì)于這樣開源的環(huán)境并不是很了解,我們希望透過Sun這樣的力量跟我們國內(nèi)的企業(yè)、跟國內(nèi)的研究單位進(jìn)行交流,我們也會(huì)舉辦單獨(dú)的活動(dòng)跟相應(yīng)交流的活動(dòng),讓他們更清楚知道許可證的含義是什么,我們從商業(yè)的角度,像我們商業(yè)許可證有什么特別,作為一個(gè)企業(yè),雖然我們今天開放了源代碼,但是企業(yè)還需要許可證,許可證給它不同的東西,真正把這個(gè)東西放在未來3G的手機(jī)上,放在我們國家用的Java卡里,為什么從Sun這兒拿到許可證,為什么不直接自己去拿Open Source的許可證,我們還是會(huì)跟這些企業(yè)溝通,讓他們更了解,一方面他得到益處,還是會(huì)有合作的可能性。我們最主要的在這個(gè)階段,讓我們國家所有相關(guān)的企業(yè)、政府、主管單位和行業(yè)企業(yè)都能夠了解開放源代碼的意義。因?yàn)橄鄬?duì)來講,我們知道開源的概念對(duì)中國的IT業(yè)界來說,是一個(gè)比較新接受的概念,大家可能對(duì)這個(gè)有不理解的地方和誤解的地方,或者說不是很明了的地方?;谶@些源碼進(jìn)行更深層次的開發(fā)之后產(chǎn)生的商業(yè)性的問題,還不是非常了解。但是這方面Sun可以通過我們媒體讓大家了解。我們跟各位的溝通也是處于這樣的觀點(diǎn),希望各位都能夠了解開放開源的意義,屬于大家有什么疑惑,或者在網(wǎng)上看到一些評(píng)論,這個(gè)評(píng)論這樣講,不知道對(duì)不對(duì)。以前有的時(shí)候,Java的關(guān)注者說Java的最大問題就是Java不開源。但這一句話里有各種不同的含義,因?yàn)镴ava開源,所謂開源代表什么東西,并不是一個(gè)非常單純的概念,你這個(gè)源代碼大家都可以看,就是開源,開源還有很多深層次的意義在里面,我們希望通過這樣的溝通,讓國內(nèi)的IT業(yè)者能夠非常清楚了解開源的意義,通過這樣的方式更進(jìn)一步發(fā)展我們國內(nèi)的Java社區(qū),通過這樣社區(qū)的發(fā)展帶動(dòng)我們整個(gè)國內(nèi)Java相關(guān)的企業(yè)的進(jìn)步。 (全文完)


細(xì)說Sun公司關(guān)于Java的開放源代碼策略(上)


Sun免費(fèi)推廣Java 明年3月前公開全部源代碼


 

分享到

多易

相關(guān)推薦