歡迎您光臨本站 註冊首頁

誰說開源不創新?

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  

  誰說開源不創新?開源思想正在Jave社區、操作系統、腳本語言、安全、多媒體和通信等領域創造大量的新技術。

  人們經常說開源沒有創新,而是模仿。這肯定是專有軟體行業希望你相信的。看一看目前企業中使用的一些最著名的開源項目中的活動,讓你不由得不同意。

  例如,儘管開源資料庫令人難以置信地廣泛用於各類關鍵任務應用,但不管是MySQL還是PostgreSQL,實際上沒有做任何IBM、 Microsoft、Oracle和Sybase多年來沒做過的事情。同樣,OpenOffice.org生產力套件是一個給人留下深刻印象的社區驅動的開發的例子,但它惟一的真正目的是創建免費的、基於標準的Microsoft Office的克隆。甚至Linux自己也是作為免費軟體改寫Unix的嘗試。但是,所有這些都不能否定開源開闢了一條屬於自己的新路而非只是跟在別人後面的事實。Apache Web伺服器就是最好的例子。Apache自1995年誕生國家超級計算應用中心的httpd后,就一直是用戶的首選Web伺服器。據網站與伺服器監測機構Netcraft說,目前62%的Internet網站使用Apache,而使用Microsoft IIS(Internet信息伺服器)的網站只有31%。

  然而正如Microsoft的Internet Explorer所證明的,流行程度並不是惟一衡量性能的指標。Apache常常是安裝在大多數Linux伺服器上的預設Web伺服器,而它的成功並不只是由於人們熟悉它或缺少競爭對手。更確切地說,它具有穩定性、高性能、一流的安全紀錄以及使它具有比商用競爭對手更多功能的各種特性與擴展程序。Apache實際上開闢了Web伺服器軟體市場並處於領先地位。5年後,IIS無疑將以這種或那種形式存在於市場上,但Apache仍將是領先產品,進一步拓展Web伺服器的功能。

  這類協作創新的例子在IT領域中比比皆是。在軟體業中,無數的開發商、個人和公司在試驗開源方式。理由之一是因為社區驅動的開發使軟體產品能夠有機地發展。正如Eric S. Raymond在其開創性的著作《大教堂與集市》中所說的:“每一個軟體傑作都開始於滿足某個開發人員的個人需要。”當一群開發員以開源方式協作時,每一位開發員都有著獨特的個人需要,其結果是軟體不斷擴展,填補專有產品沒有涉及的這些功能領域。

  開源賦予Java生命

  開源社區開發的工具鞏固了Java在開發人員市場中的領先地位。

  毫無疑問,開源使Java得到了巨大的實惠。Java語言和平台賴以發展的JCP(Java社區進程)似乎在以蝸牛的速度前進。委員會的審查和批準是個緩慢且需深思熟慮的過程,Java畢竟是領先企業應用平台,因此它應當緩慢演進,哪怕需求十分緊迫。為解決一些問題而造成另一些問題從來不是一種好的解決辦法。

  然而,與其相對的開源社區卻一直在飛速前進,推出大量的重要創新。目前,企業Java基本工具全部是開源產品:Ant(用於開發應用程序)、 Hibernate(用於將數據保存在硬碟上)、JUnit(用於設備測試)和Maven(用於繼續的集成),更不用說得到高度重視的Eclipse和 NetBeans開發環境和PMD源代碼驗證程序了。

  Java開發人員還從幾種開源框架中受益,如JSF(JavaServer Faces)、Spring和Struts。再有就是眾多的容器(container):Apache Tomcat、Geronimo、Jetty、Jonas和Resin,更不要說很多用於嵌入式應用的小容器了。開源是Java世界想像力和生產力的巨大源泉。

  在這兩股河流——JCP與開源——之間站著3大企業Java技術提供商:BEA、IBM和Sun Microsystems。他們都是一隻腳站在開源工具河流中,另一隻腳站在非開源工具河流中。雖然很多IBM工具是專有的,但它一直是Java和開源社區的主要貢獻者。BEA最近非常積極地實施其“混合”戰略,積極支持開源產品。此外,BEA還向多個開源項目捐獻代碼和程序。

  Sun有點特立獨行。狂熱的開源支持者一直逼迫Sun開放Java源代碼,希望加速這種平台中的創新,但Sun卻行動緩慢。這樣做是有一定道理的:開放Java代碼可能會將Java分裂為不同的版本,從而減少Java引以為榮的可移植性。但開源社區一直尖銳地攻擊Sun的這種立場。

  鑒於Sun對開源的長期貢獻,這就將它置於一種奇怪的境地。Sun仍是惟一一家開放其操作系統和全部生產力套件源代碼的公司。實際上,它開放了很多Java技術的源代碼。因此,Sun在8月份舉行的LinuxWorld上透露——也許有點勉強——除推出一個供開發人員跟蹤其進展的社區網站外,它打算開放Java庫和Java虛擬機。

  從長期看,向開源發展的這股強大的力量能使Java受益嗎?除了其緩慢的開發進展外,Java的一部分成功歸功於Sun所起到的管家作用。通過開放Java源代碼剝奪Sun的這一角色可能導致Java平台的大大加強,也可能最終傷害它。

  Linux讓設備受益

  嵌入式系統開發商從開源操作系統中受益。

  Linux的傳統根據地在於伺服器和工作站,而它正在這之外的非常小的設備上取得成功。對於嵌入式系統開發人員來說,Linux優於專有操作系統的優勢除了低成本外,還在於其靈活性和開放性。

  消費電子產品市場對新技術有著永不滿足的需求,但是使用來自Microsoft和Symbian等公司的專有嵌入式平台的開發人員,必須受限於某一廠商提供的設備驅動程序和對最新硬體的支持。然而,他們的開源社區同行常常在技術剛一推出時就開始修補它們。他們開發的代碼也許很糙,但開發過程很快,這反過來可以使他們更快地製造出原型產品,更早地上市以取得市場先機。

  Linux還使開發複雜的嵌入式應用變得更容易。用於嵌入式設備的傳統RTOS(實時操作系統)是在單處理器線程中運行單個任務的單用途平台。嵌入式Linux類似於它的重量級表兄,是設計用於運行多個應用的通用操作系統。這種通用性幫助開發人員滿足客戶日益複雜的基礎需求。此外,沒有複雜的專有許可條款為開發人員提供了定製各個層次應用的自由,他們可以選擇他們需要的部件而忽視另一些。

  廠商之間的競爭對於顧客肯定是件好事。在嵌入式Linux市場上,MontaVista和Wind River等頂級廠商不僅與專有操作系統廠商競爭,而且還相互競爭。此外,一些設備製造商還選擇“單幹”,獨立於操作系統廠商生產自己風格的嵌入式 Linux。然而Linux是開源操作系統,每一種變種都成為由開發人員、客戶和合作夥伴構成的大生態系統的一部分,都在為這個更大的整體做貢獻。

  這種“競爭式協作”仍給其他公司留出了利用額外的工具擴大Linux基礎的空間。例如,Trolltech提供的Qtopia:一種迅速開發嵌入式Linux應用和用戶界面的全面的環境。核心Qtopia技術可依據Gnu GPL(通用公共許可證)使用,從而為開發人員在Qtopia代碼上帶來了在Linux內核上所享受到的同樣的可見性。同樣,Nokia發布了自己的開源應用平台Maemo。該平台可以在Nokia 770 Internet Tablet等嵌入式設備上找到。

  這些工具為開發人員帶來了額外的優勢:熟悉性。Qtopia是基於Trolltech歷史悠久的桌面Linux系統Qt工具包的;Maemo 基於來自Gnome項目的類似技術。其結果不同於專有操作系統,應用開發人員可以利用自己已有的技能為嵌入式操作系統開發軟體。

  這些優勢意味著陣營越來越龐大的Linux驅動的設備。從Sharp PDA到TiVo機頂盒,從Linksys無線路由器到Motorola手機,越來越多的公司將寶押在Linux上,把它作為在快速發展的、高度競爭的設備市場中取得成功的跳板。

  開源社區推動腳本採用

  現代腳本語言在開放上取得成功。

  腳本語言,有時叫做“動態”語言,變得非常流行,其中一個原因是它們能讓開發人員利用比較小的代碼完成很多工作。這種“高相對價值”源於將更多的工作交給編譯器和運行時間環境(如按變數值得到變數類型)去做的新方法——除了完成經常執行活動的特殊捷徑外。

  包括Perl、PHP和Python在內的腳本語言還有另一個共同點:它們幾乎統統都是開源語言。在很多地方,開源與非開源之間的不同之處可能並不重要,但開源似乎在腳本語言中至關重要。奇怪的是,這點並不是由於開源在修補漏洞中的靈活性的原因,而是由於其創建社區的能力。

  比較兩種幾乎同時問世的腳本語言Ruby和NetRexx的命運,是看到開源重要性的生動例子。NetRexx是由IBM設計、部分基於其成功的大型機腳本工具Rexx的。它以解釋方式運行,也可以編譯為Java位元組代碼。作為一種語言,NetRexx具有很高的生產力並易於學習掌握,提供大量的優雅的結構。由於它可編譯為Java位元組代碼,從NetRexx中可以訪問所有的Java庫,此外,它享受著Java虛擬機的優秀性能。

  另一方面,Ruby是純解釋語言,它沒有虛擬機,因此運行速度慢。這種語言有它自己的優點,但主要優勢來自採用部分起源於Perl縮略語法不直觀的句法成分。NetRexx與Ruby還有另一個重要的共同之處:它們都是免費提供的。

  那麼,這兩種語言中哪一個更成功呢?是快速、典雅的NetRexx,還是不直觀、速度慢的Ruby呢?事實可能與你所料的正相反,今天的Ruby躊躇滿志而NetRexx卻瀕臨死亡。

  關鍵原因在於Ruby是開源而NetRexx不是。結果是Ruby能夠建立一個活躍的開發員社區——特別在它的誕生地日本,它已經流行了10 年。Ruby在David Heinemeier Hansson編寫Web應用框架Ruby on Rails之前一直在積累發展動力。Rails是Ruby的殺手應用,它是設計典雅的典範,保證了Ruby發揮持久的作用。同時,儘管NetRexx有著巨大的價值,卻蹣跚而行,無人理睬。如果IBM開放了NetRexx源代碼,腳本技術今天可能是一番完全不同的景象。

  僅憑開源本身肯定不能保證一種語言取得成功。實際上,現在有很多沒有成功希望的開源語言。儘管開源並不是成功的充分條件,但卻是必要條件。缺少它就是缺少Microsoft創建社區的資源。

  “大開放”意味著更安全

  專家們依靠得到源代碼來減少威脅和防止漏洞利用。

  幾乎每一家安全專用設備廠商都有理由使用開源工具,而這與許可證沒有什麼關係。其中的絕大多數設備——從垃圾郵件與間諜件過濾器、網路掃描器到入侵檢測與防禦系統——不僅建立在像Linux或FreeBSD這樣的開源平台上,而且還積極利用其他開源產品來完成任務。

  在各種平台上,最流行的網路埠掃描器和操作系統特徵識別應用是Nmap。作為開源工具的Nmap提供一種迅速、準確確定任何給定IP地址或子網上的開放埠的方法;它還可以通過分析IP包的構建方式確定設備所使用的操作系統。

  另一個例子是開源安全漏洞掃描程序Nessus。Nessus可以利用Nmap掃描主機,但比Nmap走得更遠:它嘗試在目標系統上觸發潛在的漏洞來驗證系統的完整性。可供Nessus使用的插件數量達到了數千種,並且隨著發現的漏洞而不斷增加——這要再一次感謝開放源代碼易於使用的事實。

  廣泛使用的IDS(入侵檢測系統)Snort也很有名。它同Nessus一樣作為商用軟體包提供,但開源版仍很吃香。其他開源工具,如OpenSSH和OpenSSL,是應用在各個方面的行業標準,在幾十種平台上被數千種不同產品所使用。

  最後,還有操作系統層本身。雖然沒有一種OS是真正安全的,但Windows平台上提供的安全工具由於基礎操作系統詳細記錄的安全問題而令人懷疑。基於Linux、FreeBSD、NetBSD或OpenBSD的產品則具有更好的安全紀錄(OpenBSD聲稱在8年多的時間裡,在預設安裝環境中只發現了一個遠程漏洞)。

  對於缺少經驗的人來說,開源的概念似乎與高度的安全性相悖。人們普遍的想法是公布源代碼會讓黑客和病毒編寫者更加容易地利用代碼中的漏洞。你只需看一看世界最堅定的專有軟體廠商之一Microsoft,就會明白事實正好相反。

  商業產品可能有一支十幾人組成的QA(質量保證)團隊,但大多數重要的開源項目——那些由社區支持的開源項目——實際上擁有由成千上萬人組成的QA團隊。其中的很多人對代碼有著深入的了解,因為他們一直在為項目貢獻代碼。這隻會使產品更加安全,因為補丁要經過比商業環境多得多的眼睛的審查,隱患迅速暴露。因此,很多安全專業人員認為開源代碼比專有代碼更安全,而這種印象最終將滲透到整個行業。

  Snort入侵檢測 協作開闢多媒體新邊疆

  無專利的音視頻技術降低進入門檻,刺激創新。

  人們很容易認為開源與多媒體是相互排斥的。對免費桌面Linux版本(如Ubuntu)的常見批評是它們缺少對播放多媒體的支持。但是,不要責怪這些版本的包裝者們。經過很多年時間,多媒體周圍包裹上了大量專利,這些專利覆蓋播放和編碼的各個方面,甚至MP3格式也受到與免費軟體許可證要求相衝突的專利的限制。

  但是,獨立的開發人員並沒有忽略多媒體,很多開源項目不僅設法繞過已有技術的限制,而且還改進它們。例如,Ogg Vorbis是一種開源“有損耗”音頻壓縮技術。同MP3一樣,它不保留數據的每一比特,而是重現與原始信號聽起來差不多的信號。不過,Vorbis利用高級心理聲學模型,在同樣的壓縮水平上提供比MP3更好的音質。此外,它不存在專利限制,完全是免專利費的。

  在視頻方面,只要看看BBC Research贊助的Dirac項目就行了。雖然仍處於試驗階段,但Dirac採用子波壓縮—— 一種理論上應當比當前方法提供更高質量視頻的高級數字技術。BBC擁有Dirac代碼的一些專利,但它向任何希望使用它們的人授予永久的免費許可。同樣, On2 Technologies將永久的許可證授予其VP3壓縮編解碼器,這種編解碼器已經成為另一個開源項目Theora的基礎。

  儘管開源多媒體技術開發進展迅速,但採用它們則是另一回事。Vorbis是一種具有超群性能的成熟的編解碼器,但沒有幾家設備製造商支持它,儘管它不需要許可費。造成這一局面的問題是內容。硬體製造商將支持內容提供商提供的格式,而這越來越多地意味著支持DRM(數字版權管理)的格式。不幸的是,不管是Apple、Microsoft、Sony還是其他公司,專有DRM實際上使技術提供商成為整個多媒體棧的看門人。這也是開源能夠解答的一個問題。

  Sun贊助的Open Media Commons,是一次通過整個開源社區參與開發DRM技術的嘗試。其核心是Sun想方設法確保不與任何已有DRM專利衝突的開源代碼。人們希望一種完全開放的DRM方案將使顧客可以在來自不同廠商的大量互操作的軟體和設備上,以認可的方式使用受DRM限制的內容。

  所有這些項目的共同主題是合作與協作,這將加快數字音頻和視頻的採用速度,正如它推動技術向前發展那樣。未來之路屬於開源,專利限制和專有代碼長期以來一直阻礙多媒體發展。

  避開專有消息技術

  開源電子郵件和協作伺服器用靈活性滿足未來的需要。

  開源工具和電子郵件都有著悠久的歷史。Exim、Postfix和Sendmail郵件伺服器得到廣泛的應用,更不用說從Mozilla Thunderbird到Pine的各種開源郵件客戶程序了。但是,電子郵件並不是企業消息技術的最高目標。對於像群組日程安排、共享地址簿和IM集成等高級特性,企業客戶通常有兩種選擇:IBM的Lotus Notes和Microsoft Exchange。這種情況已開始改變。儘管這兩個企業消息技術巨頭在可預見的未來可能仍佔據統治地位,但眾多的替代產品已經出現,尤其是針對中小企業的產品,其中很多都來自開源世界。

  Open-Xchange也許是這類項目中最雄心勃勃的一個。它在開源軟體包中重現傳統群件伺服器的功能。Open-Xchange集成多種開源工具,包括Apache Web伺服器、Tomcat Java小服務程序引擎和PostgreSQL資料庫等,通過一個基於Web的GUI提供全面的電子郵件、日程表和協作功能。商用添加件使Open-Xchange可以與Microsoft Outlook和Palm手持機互操作。

  然而,其他開源消息伺服器將互操作性又向前發展了一步。例如,Zimbra利用AJAX(非同步java script和XML)技術將消息與外部數據源相集成。此外,Zimbra是從一開始就是作為一種由組件構成的互操作系統來設計的,其中的很多組件以Web服務示人。第三方開發商可以連接在這些組件的API上,直接訪問Zimbra 日程表項、地址簿和電子郵件。

  由於Zimbra是開源軟體,因此開發商不必躲避專有陷阱。他們可以直插代碼核心,直接集成自己的軟體。開源消息系統也不強迫使用老通信介面。Open-Xchange和Zimbra利用包括WebDAV、LDAP、iCal和HTTP在內的開放標準套件,代替專有Microsoft Exchange協議。這種實現消息技術的開放方式意義重大。由於公司對作為基本業務工具的電子郵件的依賴程度非常高,因此至關重要的企業數據最終保存在電子郵件伺服器上。當這些伺服器基於專有軟體時,公司在電子郵件的存儲、恢復、搜索、歸檔、備份、集成和管理上受一家廠商的支配。基於開放協議和開放代碼的消息系統能保證客戶在需要時訪問數據。此外,活躍的開發社區將日益使這些系統能夠不僅在價格和可用性上,而且還在特性上,能與專有廠商競爭。

原文鏈接:http://www.enet.com.cn/article/2006/0918/A20060918199296.shtml



[火星人 ] 誰說開源不創新?已經有373次圍觀

http://coctec.com/docs/discuss/show-post-74661.html