關(guān)于開源很大的謊言,你是否能辨認得出?
本文轉(zhuǎn)載自公眾號“讀芯術(shù)”(ID:AI_Discovery)
數(shù)據(jù)產(chǎn)業(yè)中,筆者始終認為開源體驗最炫。一群人目的一致,共同做一個產(chǎn)品。不會收取費用,在項目的第一階段也不會,后期還會進行維護,供客戶免費使用。倘若更多產(chǎn)業(yè)跟搞軟件開發(fā)一樣借助開源項目,工作會簡單得多。但開源的價值不止在此。
事實上,這個理想化的東西并不如人們所想的那般完美,畢竟是人在操作,錯誤在所難免。在開源還被稱為開源的時代,人們對它存在許多誤解。有人說它作用很小(只會消耗產(chǎn)品不會帶來什么貢獻),時好時壞,會用在錯誤的第一項目上,讓原本美好的體驗化為烏有。
這篇文章意在揭露開源領(lǐng)域中最常見的謊言,讓小白可自行決定操作步驟。
開源沒成本,免費是必須的
都聽說過這句話吧。開源不收費,GitHub上可以免費下載數(shù)據(jù)庫,作為開發(fā)者,我們也知道可以在上面免費發(fā)布開源。只要電腦在手,敲好的代碼就免費共享。
你錯了。資源和成本(實物資源)是聯(lián)系在一起的,有了電腦,還缺什么才能實現(xiàn)開源軟件的制作和維護呢?你的時間。
時間是一種資源,而且是最寶貴的資源之一,難不成白白付出?好好想想,老板可不會補償你在開源上費的時間(除非是你在為他們做項目)。既然沒有回饋,你在做什么交易?是用跟愛人在一起的時間交換還是原本用來休息的時間交換?是犧牲睡覺的大好時光還是強身健體的時間?
時間寶貴,對每一個開源人更如此。即使程序員們愿意犧牲自己的精力,不代表你就能理所應當?shù)叵胍裁淳鸵裁?。筆者見過有人要求全天24小時的開源服務(wù),這樣功能通過后就可以加到自己的項目中。
項目可以反映其背后是一個人還是一個大型團隊,大團隊不僅有委員會這樣的組織帶頭,還有時間和資源耗費(項目有時需要花錢),而數(shù)據(jù)庫或框架卻不收費。所以下次再想抱怨開源軟件項目,想想維護成本。
開源掙不了錢
開源軟件既然不收取費用,維護者和創(chuàng)建者無法以此為生計。
你錯了。開源軟件乍一看是免費的,但你不知道的還有很多。比如任何一款數(shù)據(jù)產(chǎn)品,賺錢靠的無非是商業(yè)模式和營銷策略。你要是對開源賺錢感興趣的話,這里提供了一些點子:
-
出售專業(yè)服務(wù)
這是最常見的一種方式。正如前面提到的,程序員搭建項目并且向全世界開放使用,保證24小時服務(wù),人們會認為使用起來是理所當然的。但這不現(xiàn)實,而且跟開源的工作性質(zhì)完全不同。為什么不收費呢?
為什么不收培訓費或者向公司提供免費使用產(chǎn)品的服務(wù)?這也就是所謂的專業(yè)服務(wù)(服務(wù)就意味著公司會使用你的產(chǎn)品)。有好幾個開源項目都用的這種營銷模式。比如RedHat、IBM等。
-
出售周邊產(chǎn)品
你讀過幾本有關(guān)React和PHP的書?書不是免費的吧。既然想搭建一個人人愛用的項目,那就通過教大家學習如何使用產(chǎn)品來盈利吧。
這跟專業(yè)服務(wù)其實是一樣的,后者是個人參與(收費可以更高)。但有了產(chǎn)品,你可以搭建成本低的替代品,以供非公司客戶使用(例如開發(fā)者用你敲好的代碼)。就算不是你造的項目,也可以獲利,怎么說也是開源項目的周邊產(chǎn)品。
我們這里說的就是寫書,或錄教學視頻上傳到Udemy這樣的平臺,也可以寫贊助性的博客。
-
籌款
可以通過籌款賺錢。別怕要錢。只要方式合理,就是行之有效的。如果你建的項目被大公司投入使用了,結(jié)果會讓你大吃一驚。看Git這樣的項目,它們就是從各個對產(chǎn)品感興趣的人那里籌集資金。
關(guān)鍵看項目有什么聯(lián)系,以及背后的群體。規(guī)模足夠大,就有賺錢的機會。也有其他通過開源項目賺錢的方式,就看你怎么創(chuàng)新了。
對開源有貢獻的人就是開發(fā)員
眾所周知,只有創(chuàng)建開源項目的人才配得上開發(fā)員的稱呼,對吧?不對。
能創(chuàng)建開源項目是一種特權(quán)。當然,開源貢獻者可以從公開的項目中獲利。同時,某個產(chǎn)業(yè)和潛在雇主會發(fā)現(xiàn)這些人,對其職業(yè)技能會產(chǎn)生某種程度的誤解。不過也有些“閉門”開發(fā)員不會從公開的開源項目獲利。
你可以說他們貢獻的是時間,但也許他們對時間價值的衡量與你不同,并不會公開或參與開發(fā)開源項目。
筆者這里提的都是真實存在的,一些公司或開發(fā)員都會認為做開源項目的自然擅長該領(lǐng)域。不然你就是個連if語句都不會敲的白癡,離不開谷歌。
這顯然大錯特錯。
開源代碼維護起來很簡單
沒有哪個項目的維護是容易的、階段性的,褪去熱情你就會發(fā)現(xiàn)問題所在。建閉合代碼項目期間,你可能會跟四五個開發(fā)員共享代碼。維護時整個圈子的人都能瀏覽、評論或者公開諷刺你的成果。怎么會沒壓力呢?
很多文章都會說開源項目的優(yōu)勢之一就是能寫出簡潔可維護的代碼。對筆者來說,扛著擔子敲出漂亮的代碼對哪個開發(fā)員都不易。
維護百萬開發(fā)員使用的代碼是一項重任。即便背后有整個團隊幫忙,如何確保大家的水準和標準都無差?又如何保證那十個PR會考慮可能的風險?
準確維護開源非常難。不僅如此,它很快就會讓人感到疲憊。2018年一個黑客掌握了一個開源儲備,并通過代碼獲取了私人信息。之所以會這樣是因為項目的擁有者和維護者都工作累了,把任務(wù)推給了其他人。
這些人累了,黑客就有了可乘之機。
上手容易
開源項目一大堆,所以人人都能輕松上手,是這樣嗎?
如果你想嘗試開源項目,找一個愿意尋求幫助且項目維護者認可的合作者并不容易。有些項目方公開聲明尋求幫助,告訴新手他們的項目有問題(其實沒什么問題)。
當然也有項目方不會這么做,一方面他們沒有借助外部力量,再者沒接觸過這些想?yún)⑴c進來的人。
假如你自己的項目需要幫助,事情會變難,因為真的沒有尋求幫助的平臺。當然,你的社交賬號若有一大批粉絲,就能找到貴人。不然的話,就看項目的受歡迎程度了。
代碼可復制,隨心所用
再怎么說代碼也是免費的,對吧?
不是的。我們的海盜式心理會告訴自己如果一組代碼是免費的,那就可以隨意使用。于是就有復制代碼、換湯不換藥甚至把成果據(jù)為己有的行為。代碼憑證就是因此而來。開發(fā)者希望自己的開源項目被用且得到認可,可以考慮拿個憑證。
這樣就能對用戶的使用設(shè)限,改變他們的用法和再利用的方式,進而保護你和用戶免遭不法分子的侵害。
沒有憑證不代表你可以任意使用代碼。當你在平臺上找到了一個公共開源項目比如GiHub,限制也自然存在,原作者定的服務(wù)條例亦存在。所以作為用戶的你若是找到了沒有憑證的項目,就要想想是不是作者已經(jīng)拒絕分享此代碼。如果是,那就不要用了。
憑證應該是每個項目具備的法定條件。如果你正在找或者擁有它,最好留意與其相關(guān)的使用限制。
開發(fā)者對于開源軟件還有很多設(shè)想,但錯誤的觀點不僅會影響項目本身,同時會波及作者和維護員的職業(yè)生涯。在你眼里,有關(guān)開源最大的謊言是什么?