自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

開源軟件的這12個文化基因,能得到你的認(rèn)可嗎

譯文
系統(tǒng) 開源
開源軟件意味著什么?當(dāng)你需要向別人解釋時,如何省心又省力地傳達(dá)開源的價(jià)值和精髓?業(yè)界在開源方面獲得了許多來之不易的經(jīng)驗(yàn)教訓(xùn),我們不應(yīng)該忘記這些經(jīng)驗(yàn)教訓(xùn)。本文介紹了開源軟件的12個文化基因,你會認(rèn)可它們嗎?

【51CTO.com快譯】開源軟件意味著什么?當(dāng)你需要向別人解釋時,如何省心又省力地傳達(dá)開源的價(jià)值和精髓?自開源這個短語在1997年首次提出以來,業(yè)界在開源方面已經(jīng)獲得了許多來之不易的經(jīng)驗(yàn)教訓(xùn),我們不應(yīng)該忘記這些經(jīng)驗(yàn)教訓(xùn)。

[[165181]]

為此,我收集了12個文化基因(meme),在我看來它們有助于分享歷史、搭建舞臺,并為開源的定義以及它對整個軟件行業(yè)的意義提供上下文。

這頭幾個文化基因涉及軟件的構(gòu)建。我認(rèn)為,它們定義了我們所認(rèn)為的成功的開源項(xiàng)目,因?yàn)樗鼈兙褪巧婕败浖旧淼幕痉矫?。了解這些文化基因的項(xiàng)目才會成功。采用寬松許可證、注重社區(qū)的軟件可能是我們用來構(gòu)建和維護(hù)優(yōu)秀軟件的最出色、最高效的軟件重復(fù)使用機(jī)制。

第一個文化基因:自我們編寫軟件以來就共享軟件。

上世紀(jì)50年代末,IBM開辦了一場計(jì)算機(jī)大會,這個大會一直持續(xù)到今天,名叫SHARE。DEC在60年代開辦,支持DECUS社區(qū),你可以在其會議上購買裝滿其他人編寫和貢獻(xiàn)的軟件的磁帶。USENIX起源于70年代,當(dāng)時適逢使用磁帶發(fā)布早期UNIX版本。但是這種共享的做法完全可以追溯到40年代普林斯頓高級研究所的第一臺可編程計(jì)算機(jī)上的開發(fā)工作。

第二個文化基因:編寫優(yōu)秀軟件是艱苦的工作。

我認(rèn)為,共享歸結(jié)為這個簡單的現(xiàn)實(shí):編寫優(yōu)秀軟件很困難。軟件開發(fā)領(lǐng)域有兩大比率:開發(fā)人員在一天之內(nèi)平均可以編寫的代碼行數(shù),合理開發(fā)流程出來的每千行代碼的錯誤數(shù)量。從語言進(jìn)化到架構(gòu)重復(fù)使用的所有軟件方面的進(jìn)展圍繞這個中心思想:用更少行的代碼編寫出更多更優(yōu)秀的軟件。軟件構(gòu)建可靠性、配置管理、審查工具和流程以及測試方面的進(jìn)步,都旨在減少合理的軟件交付流程出來的錯誤數(shù)量。

第三個文化基因:沒有毫無章法的規(guī)模擴(kuò)展。

編寫優(yōu)秀軟件離不開章法。如果你看一下作為成功產(chǎn)品或者開源項(xiàng)目的軟件,構(gòu)建時通常會由同行審查,實(shí)行版本控制和配置管理,構(gòu)建自動化和測試框架與軟件一同完善。要是沒有審查、配置管理以及構(gòu)建和測試自動化,軟件無法在用戶社區(qū)里面進(jìn)行擴(kuò)展,作為一款產(chǎn)品也無法在成千上萬的用戶當(dāng)中進(jìn)行擴(kuò)展。需要維護(hù)軟件的核心小組一定要能夠回答“軟件執(zhí)行什么”。

林納斯定律可以籠統(tǒng)地表述為“給予足夠的關(guān)注,所有代碼錯誤都會浮現(xiàn)出來。”我認(rèn)為這實(shí)際上表明了提交審查過程的重要性。研究表明,審查環(huán)節(jié)發(fā)現(xiàn)的錯誤比測試環(huán)節(jié)發(fā)現(xiàn)的還多。一個健康的社區(qū)勢必在代碼簽入(check-in)方面有一套嚴(yán)格的審查流程。

第四個文化基因:軟件天生是動態(tài)的。

程序因使用而完善。錯誤被發(fā)現(xiàn)后要加以修復(fù)。發(fā)現(xiàn)新的用途,從而推動新功能。程序不斷得到磨練和加強(qiáng)。程序從一個環(huán)境移植到另一個環(huán)境。遺憾的是,版權(quán)在1980年成了“保護(hù)”軟件發(fā)布管道的機(jī)制。人們也許不明白軟件的發(fā)展有多快、衍生版的開發(fā)有多快,或者也許不明白物聯(lián)網(wǎng)和萬維網(wǎng)問世后,這種動態(tài)性只會加快。我們共享網(wǎng)絡(luò)帶寬已從磁帶大小的口袋、會議日程表和雜志出版延遲變成了全天候的實(shí)時全球構(gòu)建、發(fā)布和維護(hù)。

不妨看一下與開源軟件的社區(qū)方面有關(guān)的幾個文化基因。

第五個文化基因:你得到的總是多過給予的。

這是社區(qū)協(xié)作式開發(fā)的經(jīng)濟(jì)效率。不斷貢獻(xiàn)可謂是項(xiàng)目軟件發(fā)展的生命線。貢獻(xiàn)者貢獻(xiàn)代碼或提供修正版沒有多大的風(fēng)險(xiǎn),但是得到的好處是,整個軟件可以按貢獻(xiàn)者覺得合適的方式來使用。而至于路過式貢獻(xiàn),這可能是開發(fā)人員給予的唯一重大貢獻(xiàn),不管他們的經(jīng)驗(yàn)和專長如何。

得到的回報(bào)大于貢獻(xiàn)既適用于個人,也適用于公司。來自紅帽、英特爾和IBM等幾家大公司的專用資源和投入讓它們得以借助整個Linux操作系統(tǒng)來實(shí)行不同的商業(yè)戰(zhàn)略。公司可以將優(yōu)秀的軟件項(xiàng)目變成解決客戶問題的產(chǎn)品。

第六個文化基因:有人吃白食是成功的關(guān)鍵。

坊間傳聞,在一個開源項(xiàng)目的每1000個用戶中,有100人可能報(bào)告軟件錯誤,其中10人貢獻(xiàn)潛在的修正版,其中只有1人仔細(xì)閱讀貢獻(xiàn)準(zhǔn)則。實(shí)際上,社區(qū)成功有三條途徑(社區(qū)成功的衡量標(biāo)準(zhǔn)是代碼貢獻(xiàn))。一個是軟件需要異常容易安裝和使用,那樣項(xiàng)目才會獲得大量用戶。二是用戶群當(dāng)中會有開發(fā)者。軟件需要異常容易構(gòu)建和測試,那樣想要更改(為了自己的私利)的開發(fā)者很容易更改。三是需要異常容易能夠回過頭來向項(xiàng)目貢獻(xiàn)變更,那樣貢獻(xiàn)才會源源不斷。有大量吃白食的人意味著你干得不賴。這樣,如果有大量用戶,對開發(fā)者來說會大有潛力,貢獻(xiàn)的可能性也會隨之而來。但是項(xiàng)目的責(zé)任是確保容易。

試圖構(gòu)建開源項(xiàng)目的公司常常很難了解社區(qū)。他們想,有人得為自己提供東西。他們習(xí)慣于向社區(qū)(比如開發(fā)者網(wǎng)站)發(fā)號施令,而不是協(xié)作。有三個文化基因適用于公司和開源。

第七個文化基因:不混淆產(chǎn)品和項(xiàng)目。

項(xiàng)目其實(shí)是一組安裝和運(yùn)行后可以解決某個問題的切實(shí)可行的軟件。它是一種以代碼來說話的協(xié)作和交流。你需要了解項(xiàng)目不是產(chǎn)品。產(chǎn)品是以解決客戶的問題來盈利的東西。雖然很多出色的軟件來自于運(yùn)作良好、為工程技術(shù)減少一些工作的開源項(xiàng)目,但是仍有艱巨的工作要做,才能將它變成對客戶而言解決問題的產(chǎn)品。比如Linux內(nèi)核是項(xiàng)目,F(xiàn)edora是發(fā)行版項(xiàng)目,RHEL卻是產(chǎn)品。產(chǎn)品以滿足客戶對價(jià)值的期望來盈利。產(chǎn)品可默認(rèn)安裝、運(yùn)行,附帶保證和賠償,還有服務(wù)(支持、升級、培訓(xùn)和咨詢)以及針對特定產(chǎn)品的說明文檔。它們可能是包括硬件和服務(wù)的更龐大產(chǎn)品組合的一部分。

這個文化基因的一個推論可能是:“沒有人來為你構(gòu)建你的產(chǎn)品。”

第八個文化基因:不混淆客戶和社區(qū)。

如果說第七個文化基因涉及工程技術(shù)和商業(yè)模式,那么第八個文化基因就涉及訊息和銷售。社區(qū)和客戶的價(jià)值觀不一樣??蛻羰腔ㄥX來加快解決問題,消除風(fēng)險(xiǎn),而社區(qū)(及社區(qū)中的個人)通過合作,構(gòu)建自己的解決方案。使用開源軟件的一些公司認(rèn)為,項(xiàng)目社區(qū)是產(chǎn)品管道的一部分;他們在社區(qū)論壇中找到客戶時,就會進(jìn)一步這么認(rèn)為。他們甚至可能認(rèn)為,社區(qū)項(xiàng)目是一種先試后買的東西??墒牵@一切都是錯誤的。

公司與相關(guān)社區(qū)的交流跟其與付費(fèi)客戶的交流不一樣。每次交流都有特定的工具和交戰(zhàn)規(guī)則,以及需要記錄和考慮的度量指標(biāo)。社區(qū)成員非常具有價(jià)值,但他們不是客戶。

第九個文化基因:早在開源定義之前,公司就共享寬松許可證的軟件。

Project Athena(X11,Kerberos)始于1983年。開放系統(tǒng)基金會(OSF/Motif,OSF / 1)始于1988年。DEC和Sun從早期的BSD版本分別開發(fā)出了Ultrix和SunOS。這不是新的行為。

最后,幾個文化基因涉及開源軟件方面的許可和法律討論。

第十個文化基因:軟件自由和開源許可是不同的討論話題。

爭論軟件自由與開源軟件就好比爭論民主主義是否比資本主義更好,或者爭論言論自由是否比自由市場更重要。它們本身都是重要的討論,人們往往對于某個主題有天然的傾向性,但它們是不一樣的討論。軟件自由語言由用戶權(quán)利來界定,開源軟件語言則由許可證的屬性來界定。這些是不同的討論。

第十一個文化基因:每個開源項(xiàng)目都需要許可證。

許可證定義了別人可以如何使用軟件。軟件受版權(quán)法保護(hù),需要選擇經(jīng)OSI批準(zhǔn)的許可證。你選擇的許可證聲明了你在社區(qū)中想要的那種社會契約。雖然近年來,很多人默認(rèn)選擇Apache軟件許可證為“對商業(yè)友好”的許可證,但它未必就是如此。互惠許可證還是隨意許可證并不是談?wù)撁赓M(fèi)軟件還是開源軟件。互惠許可證也許是對生態(tài)系統(tǒng)友好的最佳許可證。

第十二個文化基因:基金會有一席之地。

非營利性組織可提供公平的競爭環(huán)境和IP(知識產(chǎn)權(quán))所有權(quán)的中立性,從而讓公司能夠?qū)iT致力于一家運(yùn)行良好的開源項(xiàng)目。

結(jié)束語

上世紀(jì)90年代中期至末期,我和同事利用寬松許可證軟件開辦了一家軟件公司,那時候開源軟件這個術(shù)語還沒有問世。這其實(shí)沒有太大的神秘性可言。我們收集并移植了大約250個采用25個不同許可證的程序包(這些許可證包括伯克利許可證、MIT許可證和GPLv2),并結(jié)合我們自己的軟件,還有一些重要軟件是微軟擁有的,其許可證允許我們使用。我們把它開發(fā)成了一款我們公司全力支持的產(chǎn)品,這款產(chǎn)品采用了我們自家產(chǎn)品的許可證。我們以不同方式參與了那些不同的協(xié)作社區(qū)。作為一批工程師和商界人士,我們能夠在UNIX系統(tǒng)社區(qū)中不斷成長,得益于悠久的協(xié)作和共享歷史。

回頭看看這些文化基因,我認(rèn)為它們與我在20年前會寫下來的文化基因一模一樣。

你會補(bǔ)充什么樣的文化基因?你有什么樣的經(jīng)驗(yàn)之談?歡迎留言交流。

原文標(biāo)題:12 memes of open source software,作者:Stephen R. Walli

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】

責(zé)任編輯:武曉燕 來源: 51CTO.com
相關(guān)推薦

2015-07-27 16:13:46

Linux認(rèn)證

2021-01-25 21:45:22

軟件測試學(xué)習(xí)技術(shù)

2020-05-15 09:50:08

GitHub開源項(xiàng)目

2023-01-31 08:00:00

開源開發(fā)軟件

2009-08-29 10:26:43

魔術(shù)四象限軟交換華為

2025-03-17 08:37:00

NatureAI模型

2018-09-07 23:27:53

AI開源學(xué)習(xí)框架

2023-12-18 10:45:22

SQL開發(fā)數(shù)據(jù)庫

2020-10-13 14:54:11

機(jī)器學(xué)習(xí)技術(shù)工具

2016-09-12 10:21:40

2020-04-22 15:45:59

Linux shellLinux命令

2023-10-11 12:25:35

2022-09-14 12:21:04

開源軟件

2020-04-21 09:16:47

開源Linux Shell

2019-12-05 18:04:38

大數(shù)據(jù)技術(shù)算法

2012-02-07 14:05:48

開源文化開源社區(qū)

2018-02-25 14:25:45

LinuxMS Office開源軟件

2023-04-09 08:48:28

開源開源軟件

2016-04-08 15:25:55

程序員職業(yè)生涯經(jīng)驗(yàn)教訓(xùn)

2023-05-26 16:42:28

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號