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