編程語言不需要開源

作者: Greg Stein  來源: 外刊IT評論  發布時間: 2010-12-29 16:37  閱讀: 781 次  推薦: 0   原文鏈接   [收藏]  
摘要:Greg是Apache Subversion項目的管理委員會成員/理事,副主席,副總裁。Apache軟件基金會的前任主席。他由于在版本控制系統(包括Subversion 和WebDAV)的工作而廣為人知,Greg最近在Google做技術管理工作,他在Google啟動了Google Project Hosting項目。他目前關注于與許可認證,開發工具和社區建設等相關的事情。

  過去的幾個月里出現了很多關于Java的討論,討論它究竟是一種開源的語言還是一種有專利的語言。人們開始懷疑對Java進行投資是否還有意義,擔心這種語言將會受到它的新管家Oracle的獨裁控制。

  在這種情形下,人們表達出了對這種語言長期發展方向的擔憂,尤其擔憂的是潛在的開發和運行Java軟件所需的許可費用以及成本的增加。

  這更加導致了人們去尋找一種開源的,獨立于廠商的語言,以此避免把自己的基礎架構和開發工作都捆綁在像Oracle這樣的單個公司的商業標準之上。像Python,C/C++,JavaScript,Ruby 和Perl等語言都是優秀的能擺脫這種縛束的候選語言。這些語言的維護、開發和發展都是通過開源社區和開源標準組織(例如ISO和Ecma)進行的。

  通常,一個公司永遠都不希望縛束在另外一個公司的要求或指揮下。可替換的供應鏈、多公司集體作用、使用開源標準等都是能夠使公司避免落入某個專權公司的專制統治之下的方法。否則的話,其它公司都會桎梏在一個公司的產品中。

  所以,Java是什么樣的語言?是開源的嗎?我們是否會受制于Oracle的公司需求?Java Community Process (JCP)以開源社區的身份維護著Java的開發工作和執行路線。然而,在針對專門用來證明是否跟Java的規范相兼容的Oracle的技術兼容包(TCK)的認證方式上,大家存在很大的分歧。

  當前的許可模式阻止了諸如Apache Harmony 等項目以獨立的、開源的Java實現版本身份被開發和兼容測試,不能在開源許可協議下對外發布。

  因為有這些許可條款,這種語言被議論為非開源,并且只受Oracle支配,只有向Oracle支付了專利費的授權者才可以開發和提供其它版本的Java解決方案。如果Oracle不調整TCK中關鍵幾項的認證條款,那么JCP所宣稱的開源宗旨將毫無疑問的無法實現。這樣的結局將會是Java不能被開源和在社區的形式下被規劃,而是將會受Oracle的希望、需求和利害關系支配。

  由于這種分裂的觀點和反對的意見所造成的后果還是個未知數。Apache軟件基金會把這個問題提出來讓整個社會參與討論,近期他們對這個問題公布了自己的決定。

  鑒于這些爭論,我們且認為Java是不開源的,是受Oracle專利所有的。但這對于Java開發者和使用者是個問題嗎?

  不是。

  歷史已經說明了為什么開發人員、企業和其他用戶使用或投資于一個有專利權的編程語言是不會有任何問題的。回首上世紀九十年代,當時對于各種形形色色的企業開發來說,最流行的一種語言就是Visual Basic(VB)。而整個的VB生態系統都是受微軟的管理、控制和規劃。

  盡管受完全的支配,各公司們仍然投入了成百上千萬美元來開發VB軟件(數億?)。這些公司愿意投入這么大的資金,是因為他們從這類軟件開發里看到了巨大的價值。

  開發人員需要向微軟購買開發工具,最終用戶需要支付微軟Windows許可費。大多數情況下,跟微軟其它產品相連接的VB應用程序會負擔更多的許可費。所有的這些可以總結為是一個成本/收益的評估,開發和部署VB軟件顯然是一個不錯的正確的選擇。

  那時以后,Visual Basic開始向一個全新的、非完全兼容的方向發展:Visual Basic .NET。這一直是微軟的要將它的開發系統向.NET轉移的計劃中的一部分。這會給開發工作增加一些成本,但過去開發的VB軟件仍然可以在這個平臺上以一種向后兼容的模式運行,只需要做一些微小的改動。

  把軟件向.NET平臺遷移顯然會造成新的可能非常大的代價,但微軟投入了巨大的人力物力來使這個平臺向后兼容,使這個Windows生態系統避免了這些遷移成本。

  對于微軟來說,Visual Basic和它的開發系統是使Windows平臺上出現這么多有用的軟件的一個非常重要的因素。它因此帶動了Windows許可證的銷售。鑒于此,他們創立了MSDN,這也成了開發人員技術支持和開闊視野的圣地,獲得了無人可及的成果。

  通過這種語言、這種程序以及它與數千萬Windows程序員之間的聯系,你可以看出,今天的軟件開發者明天將繼續使用這種語言。對于微軟來說,有一種很現實的商業需求促使他避免和這些開發人員疏遠。

  相對于微軟,Oracle處在一種不同的情形中。當他得到了Solaris,他把它當作他的整個數據庫銷售策略中的一個組件。Oracle并沒有打算把Solaris開發成一個獨立的平臺,也沒有打算創立一個像MSDN一樣的東西來幫助程序員為這個平臺開發程序。

  他對Java的推動和發展將會圍繞著這種語言,而不會把它當作Oracle其它產品的一種支持產品。在他還沒有明確的對于Java的未來的商業計劃之前,他會走Sun所選擇的道路:為各種環境認證Java虛擬機(JVM),包括其中的Java運行時環境(JRE)。如果Oracle不打算接受開源實現,那所有現存的JVM和JRE都必須來自Oracle和他的授權者。

  這就意味著Oracle有了資金來源,而另一方面,所有的用戶將需要為運行Java軟件而支付費用。

  微軟通過它的應用程序運行環境 — 微軟Windows操作系統 — 創造出來巨大的商業成就。各種公司為此付費已數十年之久。

  當Oracle可以用Java運行環境斂財時(通常會隱藏到硬件或操作系統成本中),我沒有感覺到他會對Java環境強征補償性的許可費。Oracle一點都不傻,他會努力的讓Java保持在一個有效的開發戰略上。開發和部署Java軟件現在是、將來也會是企業們最可行的選擇。

  為了進一步說明這個觀點,設想如果一個企業想通過不支付Java環境費用來“節省成本”,這意味著它要遷移到另外一種語言(假設今天大部分的企業都在使用Java)。這種遷移的成本,包括培訓費,聘請專家,完全重寫應用程序和工具組件,來回的測試,最終的部署,這些很容易就使成本超過了繼續使用Java開發和部署的成本。

  正確的做法是不要擔心Java是開源還是具有專利所有權。不要理會如今發生在新聞界的討論。它跟你的商業需要和長遠的企業軟件生態健康沒有關系。

  [英文出處]:Open languages are not required

0
0
 
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()