關(guān)于諸多系統(tǒng)的開放源代碼,近來成了大家討論的熱門話題。而今年,微軟和Java也加入了其中,這就讓數(shù)千萬的人們更加注意,畢竟,依靠.Net和Java而開發(fā)系統(tǒng)程序的人數(shù)目就有這么多,他們當然會對系統(tǒng)的開放非常關(guān)心。 今天,我們要說的就是Sun公司關(guān)于Java的開放策略。 早在今年上半年,Sun就傳出風聲,對Java要開放源代碼。這也給業(yè)內(nèi)更多的人以期待。就在本月的13日,Sun公布了這次開放源代碼的具體情況。但是,從其它廠商的反應(yīng)來看,似乎對這種策略頗多微詞。很多Java的用戶也對這方面有各種想法,我們因為此而跟Sun公司的負責人談起了Java的開放策略,使得我們對Java開放更加清楚。下面我們就對大家關(guān)注的一些問題做詳細的解釋。 Sun為什么要開放Java源代碼? 很多人都有這樣的疑問,Sun是一個公司,開放Java源代碼對他們自己有什么好處,其商業(yè)價值在哪里? 其實,作為一個IT系統(tǒng)廠商,當然希望其下的產(chǎn)品被更多的人采用,這也是公司理念和個人利益不同的方面。這個觀點Sun公司的CEO Jonathan在自己的博客里表述得很清楚,他在Sun發(fā)布Java開放源代碼的時候,就寫了一篇博客,名為“Sun從這里得到一些什么”。他講的第一句話就是我們中文講的“水漲船高”,因為Sun最大的利益就在于水漲船高,Sun要從Java里得到商業(yè)利益的話,一定是從Java的運用要能夠普及,在遍地開花,各個地區(qū)都充分地應(yīng)用Java,我們知道Java在全世界有超過500萬的開發(fā)人員,有超過將近40億的,各種不同的器件都有Java在里面,包括我們講的智能卡、Java卡、手機,全世界有超過15億支的比較智能化的手機都附有Java技術(shù)。 今天大家也都知道軟件中的SOA,不希望大家花很多的時間做那些前人早已經(jīng)做過的事情,如果我們開放了源代碼,那么等于節(jié)省了大家的時間,同時也會讓Java的整體發(fā)展上升一個新的臺階,會有更多的程序員和技術(shù)專家加入進來,這樣,這個市場還會越來越大,Java技術(shù)本身就是跨平臺的產(chǎn)品,他已經(jīng)在IT系統(tǒng)得到廣泛的普及,也在移動手持設(shè)備和嵌入式產(chǎn)品中有很大的市場,相信通過開放源代碼這樣的活動,Java市場會變得很廣闊。希望通過源代碼的措施,希望Java的使用環(huán)境更為擴大,當Java使用環(huán)境擴大之后,Sun的商業(yè)利益就出來了,大家使用Java越多,越需要商業(yè)化對Java的支持,一些商業(yè)性對Java的支持,像我們現(xiàn)在的一些企業(yè)對商業(yè)的訴求,像大部分的手機廠商,大部分主要的智能卡的廠商,所有的中間件廠商,這些廠商需要商業(yè)性的支持,能夠讓它的Java應(yīng)用真正非常的安全、可靠,而且有服務(wù)。Sun創(chuàng)造了一個很大的Java使用環(huán)境應(yīng)用,我們認為這些商業(yè)利益也會不斷的增加,給Sun帶來的主要利益是在這兒。“水漲船高”這句話應(yīng)用得很好,英語里有這個詞,在中文里有這樣的詞來充分代表,Sun在這里獲利的方向。 那么如何開放,Sun的策略是什么? 我們知道Java的應(yīng)用已經(jīng)有了將近40億的器件,已經(jīng)有500萬的開發(fā)人員,我們怎么樣讓Java更好呢?在這個過程中間,除了Sun不斷的努力推廣,以及我們的合作伙伴及我們Java的社區(qū)。在過去一直有大家比較爭議的問題,是Java源代碼的問題,這個問題Sun從前年開始逐步采取措施建源代碼,在去年的Java1的時候,Sun就宣布所有的Java都會開放源代碼,當然這需要一個過程。經(jīng)過我們的努力,差不多在18個月的時候,把Java所有的源代碼的可能性都已經(jīng)做了實踐。我們后續(xù)還有一些有關(guān)Java的調(diào)用,源代碼也要不斷的公布,在明年3月之前整個Java,作為開放源代碼的開發(fā)人員可以利用Sun所有的Java源代碼進行重新的構(gòu)建一個完整的環(huán)境。這個會完成我們所有Java源代碼的開放,但是這個源代碼開放中間,除了基本的源碼本身的清理,還有很重要的是Sun到底采取什么樣源代碼開放的策略?這次公布的最主要是在許可證這個策略上,我們希望許可證出來,有最大的可能性去擴展Java的使用環(huán)境。 具體的開放方式是怎樣的? 目前開放源碼的許可方式還有GPL的模式,這種模式不屬于商業(yè)開放源碼的模式,屬于一個社區(qū)的開放源碼,但是它跟商業(yè)許可不一樣,Sun公司目前對于JavaSE和JavaME這兩個平臺技術(shù)的開放源碼,是采用社區(qū)方式和商業(yè)方式兩種。以前Sun公司的JavaSE或者JavaME的實現(xiàn),它的產(chǎn)品源碼目前許可證可以提供的,這種商業(yè)提供源碼現(xiàn)在有很多公司跟Sun公司有商業(yè)源碼提供的協(xié)議,這種商業(yè)源碼的協(xié)議目前沒有任何改變。社區(qū)開放,商業(yè)許可還是商業(yè)許可,這是兩條路。 未來Sun公司屬于商業(yè)的產(chǎn)品也都是為源碼的開放,未來開發(fā)是社區(qū)性的開發(fā),但是商業(yè)的用戶還有很多的,比如JavaME的環(huán)境里,技術(shù)的需求等等,這是一個商業(yè)的許可證,從Sun這兒購買商業(yè)的許可證產(chǎn)品,今天開放社區(qū)的源碼,Sun公司有這樣的趨勢在這里,但是開放并沒有我們在中國武俠小說里的,老師要留一手,有什么武功秘笈什么的,所謂開放的概念就是,未來所有源代碼的工作都會轉(zhuǎn)到社區(qū)來,根據(jù)GPL的許可證本身所具有的要求,有一些新的發(fā)布,會有一些新的產(chǎn)品在一起搭配著發(fā)布,開發(fā)人員當中有很大的便利,能看到所有的源代碼,這里有很多附加的要求,有些東西本身開發(fā)的性質(zhì)是開放性的,比如說我們Sun公司可以跟另外一家公司把許可證技術(shù)放在商業(yè)的產(chǎn)品里。并不是Java源代碼這部分,但是這個技術(shù)可能是某一家公司擁有的,但是Sun公司可以把它變成商業(yè)性的產(chǎn)品來發(fā)布。但是必須要符合許可證里規(guī)定的要求,其他公司也可以用這個方法,好處就是市場上的競爭狀況,可是對于很多企業(yè)用戶來說,最終要有一個商業(yè)的,用戶和供應(yīng)商的關(guān)系我們叫合作伙伴關(guān)系,它需要有商業(yè)性的保證等等。這樣的話,它的產(chǎn)品在采用許可證的時候,會得到相關(guān)的保證。這必須要由商業(yè)機構(gòu)來取得,因為企業(yè)不愿意從開放市場和開放源代碼的社區(qū)來取得,因為開放源代碼的社區(qū)沒有這些商業(yè)上的保障。 對于Java的開放源代碼,應(yīng)該說大家都是抱著歡迎的態(tài)度的,但是Java開放后如果有組織或者個人擴充了新的功能,那Java的平臺就會像今天的Linux一樣,變出很多不兼容的版本。 Java開放后的兼容性問題 談到這個問題,Sun的技術(shù)官員做了詳細的解釋,讓我們?nèi)玑屩刎摗? 首先說一下開源和開放技術(shù)之間是有區(qū)別的。Sun宣布這次開放源代碼這個項目之前,實際上Java的規(guī)范是開放的,什么意思呢?通過Java社區(qū)組織開發(fā)出或者制定出來所有的Java規(guī)范,各種各樣的Java規(guī)范都是開放使用的,可以免費下載的。相關(guān)的為了實現(xiàn)這些規(guī)范,所有的一些參考實踐也是開放的,有一些參考實踐是“源碼”的形式,有些是“二進識碼”的形式開放的,對這種開放的可以實現(xiàn)Java規(guī)范,不管你用不用參考實踐,可以不用參考實踐自己去實現(xiàn)這個規(guī)范,也可以根據(jù)參考實踐去實現(xiàn)這個規(guī)范來做出產(chǎn)品,這都是可以的。這樣也同樣存在一個兼容性的問題,大家都說按照規(guī)范做的產(chǎn)品,到底是不是按照規(guī)范去做了呢?怎么來檢測呢?這就是Java規(guī)范三位一體,除了規(guī)范的文本和參考實踐之外,還有一個兼容性測試工具,兼容性或者叫復合型測試套件。TCK做什么,就是任何人要實現(xiàn)一個Java規(guī)范,實現(xiàn)之后要說它是一個Java產(chǎn)品,換句話要說這個產(chǎn)品和Java規(guī)范要符合,必須要通過TCK的測試,才能叫是Java兼容性的產(chǎn)品。不管開源不開源,兼容性的問題都是靠TCK的測試來解決的。Sun公司開放的源碼是什么含義呢?真正含義是Sun公司開放了根據(jù)Java規(guī)范自己做的商業(yè)代碼,自己Java的產(chǎn)品的源碼的開放,不是參考實踐的源碼的開放,而是Sun公司自己對Java規(guī)范商業(yè)實現(xiàn)源碼的開放。今后不管是Sun公司還是別的公司根據(jù)Sun公司開放的這套源代碼去做產(chǎn)品的時候,都必須通過TCK的測試。不管是誰的產(chǎn)品,通過TCK測試之后,從理論上說是兼容的,所以TCK測試這個模式是沒有改變,來保證它的兼容性,是這樣解決這個問題的。 Sun將Java推向了公眾,是不是意味著公司以后的投入會減少呢? 對于Java的支持其實比較來說會不會減少,我覺得事實上從我們剛才提到“水漲船高”的概念來講,如果說一個環(huán)境,我們獲得的利益更高的話,我們當然會投入更大。Java的發(fā)展不斷地擴展,Java雖然現(xiàn)在相對地穩(wěn)定,但是我們還有很多方面需要不斷地改進,符合用戶的需求。比如說我們手機在過去幾年的進步速度非??欤谑謾C方面的Java規(guī)范,以及我們參考實施都是需要不斷的改進和不斷的投入。除了手機之外還有不同的工具的出現(xiàn),也需要我們不斷地在Java方面進行更大的投入。所以在這方面Sun決定會在Java方面繼續(xù)把它作為Sun公司最核心技術(shù)的組成部分,會不斷地投入大量的支持,跟我們技術(shù)的力度能夠讓Java真正的,不僅僅是在開源環(huán)境里,在商業(yè)應(yīng)用里也會持續(xù)地、不斷地擴展,為大家所接受。 說到Java的推廣,人們首先想到的就是開源的Linux,目前在中國的情況不能讓大家都樂觀,那么,未來的Java如何做中國這個市場呢,畢竟,中國的情況跟國外還不相同。 因為開源是一個地區(qū)或者說我們講一個國家,現(xiàn)在開源的許可證里都是全面性的,所以開源的社區(qū)不是存在在某個地方,是存在Internet,它是沒有國界的。所以,所謂因地制宜的概念,我們許可證的方式是推廣的方式,但是一個開源社區(qū)的推廣是來自于這個開源的參與者。也就是說今天我們很多媒體可能會想,Java是Sun開源的,Sun要在中國推廣Java,Sun是絕對需要在中國推廣Java,但是在中國推廣Java的責任是所有在中國參與到Java開源社區(qū)的,利用開源社區(qū)進行更一步的IT技術(shù)發(fā)展的所有人。對于社區(qū)的概念很重要,當我們把一個技術(shù),像開源,本身第一個擔心的就是這個公司對于技術(shù)的掌控權(quán)沒有,但是這個掌控權(quán)是另外一個概念。 像微軟,微軟的開源,微軟講開放講很久了,開放軟件、開放源代碼,說可以給12個人訂機票去看它的軟件開放,這可能就是它對中國的因地制宜,這就是微軟式的開放政策。這跟我們在Internet環(huán)境里,大家所公認了解的開源開放是有非常大的距離。但是Sun絕對是在開源的領(lǐng)域是占先鋒的地位,我們不僅僅依照現(xiàn)在開源社區(qū),因為最近有很多Sun的許可證方案,訂立開源社區(qū),把它創(chuàng)建起來、發(fā)展起來。Sun公司是開源社區(qū)的一分子,今天要把我們的軟件放到開源社區(qū)的話,我們也要符合開源社區(qū)的規(guī)范做這樣的事情。許可證是一個問題,是經(jīng)過很久考慮的問題。Sun已經(jīng)做了這個決定,被大家所接受。 在中國我們怎么做呢? 在中國我們希望說,在中國是政府行政的力量比較大的社會,在這個社會里這樣開源社區(qū)的形成,可能跟其他國家形成的方法會有所不同,因為在其他的國家完全是自下而上的,社區(qū)自然而然通過Internet所有的參與者和開發(fā)人員來形成社區(qū),在中國如果有政策的支持或者我們國家的行業(yè)協(xié)會,我們國家的行業(yè)協(xié)會大家都理解,我們國家的行業(yè)協(xié)會是半政府性質(zhì)的,不是純粹像國外的行業(yè)協(xié)會是純粹民間性質(zhì)的。在這樣的環(huán)境之下,有政府行政力量的因素,對社區(qū)的發(fā)展有一個大的助力,中國又是一個IT相對落后的國家,我們在IT發(fā)展的起跑線上我們已經(jīng)輸了很多,在這樣開源社區(qū)的發(fā)展之下,如果政府不能夠加點油或者推一把,我們的發(fā)展不一定能夠趕得上其他國家的發(fā)展。也許我們落后的程度可能反而會越來越大。陸總提出來開源的因地制宜的方法,從中國具體的社會狀況,從IT發(fā)展階段來看應(yīng)該是鼓勵我們有一個政府或者是半政府的組織的參與,鼓勵開源社區(qū)能夠快速的發(fā)展,能夠透過開源社區(qū)的發(fā)展,來提高我們中國IT的步驟。 在政府參與里牽扯到具體的許可證的問題,這個問題事實上陸總提到采用混源有一些變更的辦法來做,像Sun公司Solaris開源,是用GBDL是混源的方式,因為GBDL可以你根據(jù)開源代碼開發(fā)軟件的這些人,不需要再把代碼公布,所謂混源,開放源代碼有的是二進位的代碼,可以跟源代碼混合發(fā)布,GPL的特點一定是開源代碼發(fā)布,對于GPL社區(qū)里的人是非常堅持的,如果做不到這一點,是不會用這個來發(fā)布的。我們講的Linux,為什么我們很多的技術(shù)沒有辦法作為Linux的方式統(tǒng)一發(fā)布,就是因為如果不采用GPL的方式,Linux是絕對不會把它放在里面。這樣的概念是符合Sun公司在考慮許可證有很多這樣的需求,因為比如說我們政府的某些機構(gòu),利用政府的資源來開發(fā)源代碼,他不希望完全把它開源,或者有一些企業(yè)進行一些開源,他覺得要進行某些保護,事實上我們今天在GPL里有一部分例外,我還是有這個可能我只是把二進位的代碼公布,不公布源代碼,但是有相應(yīng)的條件,有一定混源的要求的。GBDL是比較符合混源的要求,我們看到這個相對于在世界上開源社區(qū)的人,對于GBDL存在一定的排斥,他們認為GPL是比較多的人使用方式,尤其是在Linux方面。大多數(shù)人采用GPL的方式,經(jīng)過多數(shù)人的考量,我們覺得在Java的開源方面,采用GPL的方式最能夠保證Java未來的兼容性,因為當所有源代碼都公布的時候,有一個廠家或者某一個社區(qū)想要去改變就很困難,因為大家可以看到很難改變Java的兼容性,這個問題就解決了Java發(fā)生問題的兼容性。在這方面陸總的話有很明確的道理在里面,我認為中國的開源需要有政府以及半官方的力量協(xié)助,才能夠改造世界整個開源的潮流跟進度。 Sun比較能夠在著眼于中國方面,從許可證本身做了一些考量,但是我們推廣的問題,當然我們跟中國政府,并不是說跟中國政府有不同的方法或者說不同的社區(qū),整個社區(qū)是存在虛擬空間的,不存在社區(qū)的問題,最主要讓中國的業(yè)界包括我們政府指導我們行業(yè)的主管機構(gòu),還有官方的行業(yè)機構(gòu)都能夠了解許可證的含義是什么,了解它能夠扮演什么角色,Sun作為許可證的發(fā)布者和作為Java的推廣者,我們當然可以主動跟政府做這個事情。但是已經(jīng)是開放的東西,事實上就不是自己擁有的,Sun公司把所有的源代碼給中國政府,這是沒有意義的。因為這個東西已經(jīng)直接開放了。我是說政府支持的這些研究機構(gòu)和國有企業(yè)都可以直接從網(wǎng)上參與到這個社區(qū)的發(fā)展。 如果對于這樣開源的環(huán)境并不是很了解,我們希望透過Sun這樣的力量跟我們國內(nèi)的企業(yè)、跟國內(nèi)的研究單位進行交流,我們也會舉辦單獨的活動跟相應(yīng)交流的活動,讓他們更清楚知道許可證的含義是什么,我們從商業(yè)的角度,像我們商業(yè)許可證有什么特別,作為一個企業(yè),雖然我們今天開放了源代碼,但是企業(yè)還需要許可證,許可證給它不同的東西,真正把這個東西放在未來3G的手機上,放在我們國家用的Java卡里,為什么從Sun這兒拿到許可證,為什么不直接自己去拿Open Source的許可證,我們還是會跟這些企業(yè)溝通,讓他們更了解,一方面他得到益處,還是會有合作的可能性。我們最主要的在這個階段,讓我們國家所有相關(guān)的企業(yè)、政府、主管單位和行業(yè)企業(yè)都能夠了解開放源代碼的意義。因為相對來講,我們知道開源的概念對中國的IT業(yè)界來說,是一個比較新接受的概念,大家可能對這個有不理解的地方和誤解的地方,或者說不是很明了的地方?;谶@些源碼進行更深層次的開發(fā)之后產(chǎn)生的商業(yè)性的問題,還不是非常了解。但是這方面Sun可以通過我們媒體讓大家了解。我們跟各位的溝通也是處于這樣的觀點,希望各位都能夠了解開放開源的意義,屬于大家有什么疑惑,或者在網(wǎng)上看到一些評論,這個評論這樣講,不知道對不對。以前有的時候,Java的關(guān)注者說Java的最大問題就是Java不開源。但這一句話里有各種不同的含義,因為Java開源,所謂開源代表什么東西,并不是一個非常單純的概念,你這個源代碼大家都可以看,就是開源,開源還有很多深層次的意義在里面,我們希望通過這樣的溝通,讓國內(nèi)的IT業(yè)者能夠非常清楚了解開源的意義,通過這樣的方式更進一步發(fā)展我們國內(nèi)的Java社區(qū),通過這樣社區(qū)的發(fā)展帶動我們整個國內(nèi)Java相關(guān)的企業(yè)的進步。 |