開源:具有永遠奉獻精神的禮物

老魚筆記發表於2007-12-18

對於專有軟體使用者來說,當需要升級到一個新版本的時候,並沒有多少激動的感覺。因為這種升級通常是為一些補丁修復或微小的功能升級來掏錢買單。

   即使不從金錢方面考慮,這種升級也可能會帶來時間上的較大浪費,例如備份檔案、解除安裝老版本並安裝新版本等。

  與之形成鮮明對比的是,Linux使用者期望升級時間的到來就如同期待他們的生日到來一樣。舉個例子來說,對於一個新版本的  KDE或Gnome,其中比較酷的新功能和使用者體驗都是免費的。和升級Windows軟體所不同的是,Linux程式升級通常是透過作業系統本身來處理的。

   Linux使用者通常可以休閒的坐等升級管理器自己來完成這個任務。Linux應用程式的升級時間通常就是使用者放鬆的機會。開源軟體開發者送給他們的使用者一個可以不斷帶來驚喜的禮物。

一、使用者驅動是開源的最大優勢

   Vyatta負責戰略和市場的副總裁Dave Roberts表示,“大多數開源專案會非常迅速的推出新版本。這個過程是社群推動式的,當然有時候也會有商業化公司參與其中。所以使用者往往會看到預期的新功能。但是通常不會對新功能感覺太意外。如果一個開發者經常與他的使用者討論,新功能通常很難是一個秘密。這個過程是非常透明的。”

二、升級頻繁帶來的潛在影響

   儘管使用者通常期望在他們喜歡的應用程式中看到更頻繁的新功能“禮物”,軟體開發者對於這一過程卻往往抱著矛盾的觀點。

   “頻繁釋出新版本是一把雙刃劍。軟體開發者一直在對他們的應用程式進行修正和打補丁。不利的一方面是,開發者並不希望總是在進行升級,”開放解決方案聯盟(Open Solutions Alliance,OSA)的創始人之一,JasperSoft公司的技術長Barry Klawans表示,“開源中的商業化廠商通常不願意頻繁的進行這種升級。”

   在Linux中的升級過程通常被認為是相當完美的。在很多Linux版本中,對作業系統的升級是透過一個類似微軟的升級管理器來自動完成的。軟體應用程式可以透過升級管理器來進行跟蹤,這樣使用者通常除了點選以下OK按鈕和輸入密碼外,通常不需要做任何其他的事情。

   在大多數Linux發行版中,開源軟體(通常被稱為“軟體包(packages)”)已經按照要求的格式被社群加入到軟體庫中。其安裝指令碼可以自動被作業系統處理,並且被增加到升級管理器程式列表中,以自動檢查可用的更新。

   但是,對於來自社群軟體庫之外的應用程式包,使用者不得不手動的執行安裝指令碼。最初的安裝和將來的升級可能只能透過使用者在終端視窗中輸入命令來實現。這多少有點讓我們回憶起微軟的DOS時代。

   “某些軟體公司在處理升級的時候做的比較好,它們多數是商業化的公司,”Klawans表示。

   對於一個開源專案來說,通常在使用者和開發團隊之間會有不斷的討論或交流,這會讓產品使用者做好是否需要升級的準備。相比之下,專有軟體公司是在它們自己的意願的驅動下開發產品,而不是使用者的直接參與。

   一個新版本的專有軟體產品進入市場通常需要花費12到18個月的時間。而開源軟體則可能每個月都會看到幾個不同的版本升級。

   在開源世界中,使用者更靠近開發。升級通常更細化,Roberts表示。新版本釋出的成本要小的多,通常只是貼出供使用者下載的新版本地址,不用再燒錄成光碟或進行包裝。

三、升級週期需根據實際情況選擇

   有的時候,這個升級過程可能給使用者帶來一些影響。在決定什麼時候一個升級需要使用者移除早期的版本並重灌新版本,沒有一個權威的指南可以讓開源開發者來遵循。舉個例子來說,Ubuntu 7.10要求使用者已經安裝了最新的老版本。如果中間忘記了更新——當新版本更新的非常快的時候這種情況是非常有可能發生的——意味著使用者不得不執行兩次或者更多的操作來實現更新的最新版本。

   “某些產品的升級安裝起來缺乏使用者友好性,因此使用者不得不開始一個完整的重新安裝過程,”Klawans表示。

   當這種現象發生的時候,它通常是應用程式中的基礎性設計發生變化所導致的,而不是沒有考慮到對使用者所造成的不便性。通常這不是一個開源的問題。

   “開發軟體有時升級的步伐過於迅速步伐,尤其是對一些Web 2.0應用程式來說,會導致難以相信的複雜元件,”HP負責開源和Linux的首席技術專家Bdale Garbee表示。“而對使用者來說,不得不解決一個產品的某些不方便的升級問題,這促使他們要分析他們的需要,然後決定什麼時候以及是否要執行這個升級。”

   當需要重灌一個作業系統和大型軟體的時候,最終結果應該是可以獲得更好的效能。舉個例子來說,對於Linux來說,對核心和其他作業系統基本部分的升級是通常與功能無關的。目標是穩定性、健壯性和可擴充套件性,因此向前相容還是不錯的,Garbee解釋道。

   已經具有一段歷史的軟體通常在升級週期的選擇上表現不錯,開發者可以讓升級變得儘可能的無縫銜接,Garbee表示。

   “對於Linux你通常不會像在Windows中那樣遭遇DLL痛苦。在Linux中程式中的依賴性受到了更好的控制,”他表示。

   對於使用者來說,開源是一個可以再生的禮物,Garbee表示。

四、開發者選擇更靈活的產品升級模式

   但是,在某些軟體中,強制性的重新安裝也確實是存在的。舉個例子來說,開發者做出修改介面的決定,當升級的時候就需要重新安裝。人們往往會把開源軟體和同型別的專有軟體對手在使用者體驗上進行對比,這就使得開源軟體也會做出一些重大的改變,Garbee表示。

   JasperSoft會在任何必要的時候釋出新的開源版本。專業版則每年升級兩三次。這樣可以讓使用者獲得最新版的開源測試版版本,Klawans表示。

   在進行一個重大升級或功能變化的時候,這個產品可能需要一個完全的重新安裝。而當開源公司提供給使用者一個從同一個應用程式的免費版到商業化版本的升級的時候,一個臨時性的升級則會發生,這個公司透過安裝指令碼的方式來處理它。

   “應用軟體廠商真的需要對提供安裝指令碼加以重視,或者至少有一個簡單的匯出方式來儲存和重新載入現有的資料。這在客戶關係管理軟體中顯得非常關鍵。”他表示。

   Vyatta則使用了一個基於時間的釋出週期。公司每年兩次釋出重大的升級,每隔8到12個星期則釋出一些小的版本,Roberts表示。

   “這個過程對我們來說是量身定做的。我們能夠以更小的規模來向前發展的更快,”他如此表示。

原文釋出地址:http://publish.itpub.net/o/2007-11-27/200711271759364.shtml

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11310314/viewspace-806/,如需轉載,請註明出處,否則將追究法律責任。

相關文章