近年來,一種新的思潮在國際上受到越來越多的關注,已經取得豐碩成果,而且將對整個軟件產業格局產生重大深遠影響,這是所謂開放源碼思想。
開放源碼的基本思想很簡單,初由于計算機硬件造價昂貴,許多公司認為計算機軟件不值錢,將其僅看作是整個計算機的附屬產品。因此,當時網絡上的程序員可以任意閱讀、重新分布和修改軟件的源碼,也正因為此才使得軟件業得以飛速的發展。
然而,隨著計算機硬件成本的不斷下降,軟件在整個計算機系統的成本中占有越來越高的比例,如何提高軟件開發生產率、降低成本、提高質量是整個計算機軟件行業的重大課題。按照傳統封閉的開發模式,只有很少一部分程序員能夠看到源代碼,其他任何人只能使用不透明的二進制軟件,這使得程序源碼中的大量潛在錯誤難以被及時發現和消除,造成巨大的維護費用。
開放源碼主要目標是提高軟件質量,其方法是通過開放源代碼以獲得廣泛的對等評審及用戶測試效應。與傳統的封閉開發模式相對,傳統模式采取嚴密組織的開發隊伍(如同構筑大教堂的組織模式),開放源碼則是由分散的發燒友通過Internet組成的開發隊伍進行組織(如同市集的組織模式),這是開放源碼社區Eric Raymond在其的《大教堂與市集》一文中提出的論點,Linux的開發是“市集模式”的成功典范,也從實踐上說明“市集模式”能夠開發出可用性優于“大教堂模式”的軟件。
然而,“市集模式”也并非,Eric Raymond指出了市集模式成功運用的先決條件,包括包括開放源碼項目工程的資格問題和在把項目公開和開始建造一個協作開發人員的社團的時候代碼的狀態。可以認為,不能以一個市集模式從頭開發一個軟件,可以通過市集模式進行測試、調試和改進,但是以市集模式從頭開始一個項目將是非常困難的,初期的開發人員的社團應該有一個可以運行和測試的東西來玩,盡管它可以很粗糙、很笨拙、不完整和缺少文檔,但不能忽略的東西是要吸引哪些人卷入一個整潔的項目。同時,“市集模式”的成功依賴Internet和控制版本進化的(例如Richard Stallman,Linus Torvalds)。作為項目而言,能夠提出卓越的原始設計思想不是關鍵的,關鍵的是要能把從他人那里得到的好的設計重新組織起來,同時必須有良好的人際和交流能力,必須能夠吸引他人共同建造一個開發社團。
與開放源碼緊密相關的是所謂自由軟件運動,后者的主要目標是使得開發的軟件是Free(是自由,freedom,不是免費的意思)的,它們之間簡單的區別是各自的優先權不同,在此不對二者區別進行更深入的哲學討論。在開放源碼/自由軟件思想下已經積累了相當一批財富,包括操作系統級、平臺軟件級、甚至應用級的源程序已經被放在網站上,供軟件愛好者自由使用。盡管目前軟件業的主要商業模式是以出售拷貝為基本商業基點的,但這種商用軟件的思路目前正逐漸被開放源碼、以服務和培訓為商業獲取利潤的思想所取代。而且,開放源碼軟件可以把很多人的智力集聚到一起,尤其既有利于基礎軟件教育事業,又可以加快高質量的共性軟件發展。因此,開放源碼思想已經受到來自政府、企業、科研教育機構的高度關注,隨著大量人力物力的不斷投入,開放源碼軟件正在逐步走向工業化。
但是,開放源碼也帶來了一些新的問題,由于完全本著自愿的原則,任何人都可以自由參與開源軟件的開發,也可以將自己編制的軟件放到網上讓別人共享,因而軟件版本如何管理、質量如何保證、軟件錯誤如何跟蹤和修正等都擺在人們的面前。同時,開放源碼的測試、整理與推廣也是一個比較重要的任務。可以認為,將開放源碼思想與傳統的軟件工程進行有機結合將對未來軟件業的發展產生深遠影響,也將為軟件質量提高工作探索新的途徑。