Apache軟件基金會的前任主席:編程語言不需要開源
51CTO編者按:前不久,51CTO剛剛介紹過2011年需要關注的9大編程語言。這些都是在當今軟件開發(fā)行業(yè)中被廣泛應用和關注的語言。但是人們不能忽視編程語言排行榜上穩(wěn)居第一的Java。過去的幾個月里出現(xiàn)了很多關于Java的討論,討論它究竟是一種開源的語言還是一種有專利的語言。人們開始懷疑對Java進行投資是否還有意義,擔心這種語言將會受到它的新管家Oracle的獨裁控制。
在這種情形下,人們表達出了對這種語言長期發(fā)展方向的擔憂,尤其擔憂的是潛在的開發(fā)和運行Java軟件所需的許可費用以及成本的增加。
這更加導致了人們?nèi)ふ乙环N開源的,獨立于廠商的語言,以此避免把自己的基礎架構(gòu)和開發(fā)工作都捆綁在像Oracle這樣的單個公司的商業(yè)標準之上。像Python,C/C++,JavaScript,Ruby 和Perl等語言都是優(yōu)秀的能擺脫這種縛束的候選語言。這些語言的維護、開發(fā)和發(fā)展都是通過開源社區(qū)和開源標準組織(例如ISO和Ecma)進行的。
通常,一個公司永遠都不希望縛束在另外一個公司的要求或指揮下??商鎿Q的供應鏈、多公司集體作用、使用開源標準等都是能夠使公司避免落入某個專權(quán)公司的專制統(tǒng)治之下的方法。否則的話,其它公司都會桎梏在一個公司的產(chǎn)品中。
所以,Java是什么樣的語言?是開源的嗎?我們是否會受制于Oracle的公司需求?Java Community Process (JCP)以開源社區(qū)的身份維護著Java的開發(fā)工作和執(zhí)行路線。然而,在針對專門用來證明是否跟Java的規(guī)范相兼容的Oracle的技術(shù)兼容包(TCK)的認證方式上,大家存在很大的分歧。
當前的許可模式阻止了諸如Apache Harmony 等項目以獨立的、開源的Java實現(xiàn)版本身份被開發(fā)和兼容測試,不能在開源許可協(xié)議下對外發(fā)布。
因為有這些許可條款,這種語言被議論為非開源,并且只受Oracle支配,只有向Oracle支付了專利費的授權(quán)者才可以開發(fā)和提供其它版本的Java解決方案。如果Oracle不調(diào)整TCK中關鍵幾項的認證條款,那么JCP所宣稱的開源宗旨將毫無疑問的無法實現(xiàn)。這樣的結(jié)局將會是Java不能被開源和在社區(qū)的形式下被規(guī)劃,而是將會受Oracle的希望、需求和利害關系支配。
由于這種分裂的觀點和反對的意見所造成的后果還是個未知數(shù)。Apache軟件基金會把這個問題提出來讓整個社會參與討論,近期他們對這個問題公布了自己的決定。
鑒于這些爭論,我們且認為Java是不開源的,是受Oracle專利所有的。但這對于Java開發(fā)者和使用者是個問題嗎?
不是。
歷史已經(jīng)說明了為什么開發(fā)人員、企業(yè)和其他用戶使用或投資于一個有專利權(quán)的編程語言是不會有任何問題的?;厥咨鲜兰o九十年代,當時對于各種形形色色的企業(yè)開發(fā)來說,最流行的一種語言就是Visual Basic(VB)。而整個的VB生態(tài)系統(tǒng)都是受微軟的管理、控制和規(guī)劃。
盡管受完全的支配,各公司們?nèi)匀煌度肓顺砂偕锨f美元來開發(fā)VB軟件(數(shù)億?)。這些公司愿意投入這么大的資金,是因為他們從這類軟件開發(fā)里看到了巨大的價值。
開發(fā)人員需要向微軟購買開發(fā)工具,最終用戶需要支付微軟Windows許可費。大多數(shù)情況下,跟微軟其它產(chǎn)品相連接的VB應用程序會負擔更多的許可費。所有的這些可以總結(jié)為是一個成本/收益的評估,開發(fā)和部署VB軟件顯然是一個不錯的正確的選擇。
那時以后,Visual Basic開始向一個全新的、非完全兼容的方向發(fā)展:Visual Basic .NET。這一直是微軟的要將它的開發(fā)系統(tǒng)向.NET轉(zhuǎn)移的計劃中的一部分。這會給開發(fā)工作增加一些成本,但過去開發(fā)的VB軟件仍然可以在這個平臺上以一種向后兼容的模式運行,只需要做一些微小的改動。
把軟件向.NET平臺遷移顯然會造成新的可能非常大的代價,但微軟投入了巨大的人力物力來使這個平臺向后兼容,使這個Windows生態(tài)系統(tǒng)避免了這些遷移成本。
對于微軟來說,Visual Basic和它的開發(fā)系統(tǒng)是使Windows平臺上出現(xiàn)這么多有用的軟件的一個非常重要的因素。它因此帶動了Windows許可證的銷售。鑒于此,他們創(chuàng)立了MSDN,這也成了開發(fā)人員技術(shù)支持和開闊視野的圣地,獲得了無人可及的成果。
通過這種語言、這種程序以及它與數(shù)千萬Windows程序員之間的聯(lián)系,你可以看出,今天的軟件開發(fā)者明天將繼續(xù)使用這種語言。對于微軟來說,有一種很現(xiàn)實的商業(yè)需求促使他避免和這些開發(fā)人員疏遠。
相對于微軟,Oracle處在一種不同的情形中。當他得到了Solaris,他把它當作他的整個數(shù)據(jù)庫銷售策略中的一個組件。Oracle并沒有打算把Solaris開發(fā)成一個獨立的平臺,也沒有打算創(chuàng)立一個像MSDN一樣的東西來幫助程序員為這個平臺開發(fā)程序。
他對Java的推動和發(fā)展將會圍繞著這種語言,而不會把它當作Oracle其它產(chǎn)品的一種支持產(chǎn)品。在他還沒有明確的對于Java的未來的商業(yè)計劃之前,他會走Sun所選擇的道路:為各種環(huán)境認證Java虛擬機(JVM),包括其中的Java運行時環(huán)境(JRE)。如果Oracle不打算接受開源實現(xiàn),那所有現(xiàn)存的JVM和JRE都必須來自Oracle和他的授權(quán)者。
這就意味著Oracle有了資金來源,而另一方面,所有的用戶將需要為運行Java軟件而支付費用。
微軟通過它的應用程序運行環(huán)境 — 微軟Windows操作系統(tǒng) — 創(chuàng)造出來巨大的商業(yè)成就。各種公司為此付費已數(shù)十年之久。
當Oracle可以用Java運行環(huán)境斂財時(通常會隱藏到硬件或操作系統(tǒng)成本中),我沒有感覺到他會對Java環(huán)境強征補償性的許可費。Oracle一點都不傻,他會努力的讓Java保持在一個有效的開發(fā)戰(zhàn)略上。開發(fā)和部署Java軟件現(xiàn)在是、將來也會是企業(yè)們最可行的選擇。
為了進一步說明這個觀點,設想如果一個企業(yè)想通過不支付Java環(huán)境費用來“節(jié)省成本”,這意味著它要遷移到另外一種語言(假設今天大部分的企業(yè)都在使用Java)。這種遷移的成本,包括培訓費,聘請專家,完全重寫應用程序和工具組件,來回的測試,最終的部署,這些很容易就使成本超過了繼續(xù)使用Java開發(fā)和部署的成本。
正確的做法是不要擔心Java是開源還是具有專利所有權(quán)。不要理會如今發(fā)生在新聞界的討論。它跟你的商業(yè)需要和長遠的企業(yè)軟件生態(tài)健康沒有關系。
此博客由Greg Stein發(fā)表
Greg是Apache Subversion項目的管理委員會成員/理事,副主席,副總裁。Apache軟件基金會的前任主席。他由于在版本控制系統(tǒng)(包括Subversion和WebDAV)的工作而廣為人知,Greg最近在Google做技術(shù)管理工作,他在Google啟動了Google Project Hosting項目。他目前關注于與許可認證,開發(fā)工具和社區(qū)建設等相關的事情。
【編輯推薦】