開源的最大謊言
開源是我在行業(yè)中遇到過的最有趣的事情之一。這項運動本質(zhì)上是將人們聚集在一起,因為他們愿意而致力于產(chǎn)品的工作。他們通常免費進行此操作,尤其是在項目的最初階段,然后-獲得此信息-對其進行維護,以使其他人可以使用它。也是免費的。
我傾向于認為,如果像我們在軟件開發(fā)中一樣,有更多的行業(yè)采用開源,那么事情會容易得多。再說一遍,這不是我們在這里的原因。實際上,這種令人驚奇的,幾乎類似于極樂世界的開源運動并不像人們想象的那樣完美,因為人們參與其中并且人們并不完美。
在我們所說的開源的生命周期中,圍繞它產(chǎn)生了許多誤解。他們中的大多數(shù)人要么不是積極參與其中(即僅消費其產(chǎn)品而從未做出過貢獻),要么是運氣不好并參與了錯誤的第一個項目,從而摧毀了本來可以令人贊嘆的體驗。
我打算在本文中介紹一些我們行業(yè)中關于開源的最常見的謊言,以便您(新手)可以自行決定是否要加入這一運動。
我們開工吧。
完全披露:本文是受Dan Abramov的這一推文啟發(fā)的。我接受了提示并接受了提示。
它是免費的,因此必須免費使用
誰沒聽說過這個,對吧?開源是免費的。從字面上看,我們可以從GitHub之類的地方免費下載庫,而作為開發(fā)人員,我們知道我們也可以免費在此處發(fā)布。
因此,只要手頭有電腦,我們就可以免費創(chuàng)建代碼并將其共享給驚人的行業(yè)。
錯誤的。
我們傾向于將成本與資源(通常是物理資源)相關聯(lián),但是由于我們已經(jīng)擁有一臺計算機,因此,我們還需要哪些其他資源來生產(chǎn)和維護開源軟件?
時間。
沒錯:您的時間就是資源。實際上,這是您擁有的最有價值的資源之一,您是否正在考慮免費提供它?再想一想。花在開源項目上的時間可能是您沒有得到雇主補償?shù)臅r間(除非您為他們建立該項目)。因此,如果沒有任何收入可以交換您,那么您在交換什么呢?和親人在一起?您可能會花些時間放松一下?數(shù)小時的睡眠?鍛煉時間?
您的時間很寶貴,參與開源項目的每個人的時間也很寶貴。僅僅因為他們愿意為開放供您使用的東西而做出犧牲,并不意味著您有權要求任何您想考慮的要求。我見過人們需要24小時支持,或者他們的功能被接受是因為他們需要自己的(私人)項目。清單繼續(xù)。
根據(jù)項目的不同,您可能會看到一個由一個人組成的團隊,或者由一個由委員會領導的龐大團隊在其中花費時間和其他資源(是的,有時他們需要在這些項目上花錢),因此您可以擁有該圖書館或免費框架。因此,下次您要考慮抱怨OSS項目時,請考慮其維護人員的成本。
它不能成為收入來源
開源軟件是免費的。因此,其維護者和創(chuàng)作者無法以它為生。
錯誤的。
乍看之下,開源軟件對其用戶免費。但是,在說它不能成為有效的收入來源之前,還有很多事情要理解。
像任何數(shù)字產(chǎn)品一樣,賺錢與您的商業(yè)模式及其背后的營銷策略有關。如果您有興趣從開源項目中賺錢,請參考以下一些想法。
出售專業(yè)服務
這是最常見的一種。正如我之前所說,人們傾向于認為,因為您已經(jīng)建立了一個項目并將其發(fā)布到全世界,所以您需要一天24小時為它提供支持。這不僅是不正確的,而且肯定是一個完全不同的工作領域。那么為什么不收費呢?
實際上,為什么不同時收取培訓費用,甚至不為嘗試使用您的免費產(chǎn)品的公司提供支持?這些就是我們所謂的專業(yè)服務(這些服務適用于使用您的產(chǎn)品的公司)。
有很多開源項目可以做到這一點。例如,RedHat,IBM,Hortonworks(圍繞Apache Hadoop)和Percona(針對其開源數(shù)據(jù)庫)。
銷售相關內(nèi)容
您看過(或甚至讀過)關于React或PHP的幾本書?這些書不是免費的,對嗎?
如果您成功構建了人們喜歡和使用的開源項目,那么您可以通過向人們提供他們可以用來學習如何使用它的產(chǎn)品來賺錢。這與專業(yè)服務模式非常相似,但是這意味著您需要親自參與(因此可以向您收取更高的費用)。但是,使用產(chǎn)品,您可以構建便宜的替代方案,供非公司用戶(即嘗試使用您的代碼的開發(fā)人員)使用。
即使您不是該項目的作者,也可以通過做同樣的事情來從他們的成功中受益。您正在圍繞一個開源項目(不是您自己的項目)構建產(chǎn)品。
我們正在談論編寫有關此書的書籍,為Udemy等平臺創(chuàng)建視頻課程,甚至撰寫有關這些OS項目的贊助博客文章。為什么不?有時,作者會愿意付錢給您寫關于他們的項目的文章。
捐獻
您可以從為自己的事業(yè)捐款的人中賺錢。不要害怕要錢。只要做得好,絕對是有效的收入選擇。
而且,如果您構建了一個大型社區(qū)正在使用的項目,那么您會對結果感到驚訝。查看諸如Git之類的項目,您會發(fā)現(xiàn)它們確實收到了對自己的事業(yè)感興趣的任何人的捐款。
這一切都與您的項目以及在其背后建立的社區(qū)所能達到的范圍有關。如果足夠大,那么可能會有一種賺錢的方法。
您可以通過許多其他方式從開源工作中獲取收入。這只是發(fā)揮創(chuàng)造力的問題。
您對它的貢獻將您定義為開發(fā)者
我們都知道,只有為開源做出貢獻的開發(fā)人員才是名副其實的吧?
錯誤的。
能夠為開源做出貢獻(無論是以項目的形式還是通過對其他人的項目的PR進行捐贈)都是一種特權-并非必須要獲得工作或被認為擅長于自己的工作。
是的,OS貢獻者的確可以通過公開工作而從他們的工作中受益。反過來,這使行業(yè)和潛在的雇主都能找到自己的工作,并在某種程度上對自己的技能有所偏見。但是,確實有許多優(yōu)秀的閉門開發(fā)者無法從同一件事中受益。
當然,您可以說他們可能會花一些時間來做出貢獻,但是也許他們以與您不同的方式來珍惜他們的時間,從而使他們無法發(fā)布或為OSS做出貢獻。
我要說的是這樣一個事實,即有些公司甚至其他開發(fā)人員都認為您擅長開源。否則,您就是企業(yè)老鼠,如果不在Google上查找就無法編寫單個if語句。
那完全是完全錯誤的。所以別再這樣做了,好嗎?
維護開源代碼很容易
關于這個我能說些什么?維護任何類型的項目都不容易。再加上您是出于良心而這樣做的事實,您就會開始發(fā)現(xiàn)問題所在。
當您構建一些封閉代碼項目時,您可能必須與四個(可能是五個)開發(fā)人員共享您的代碼。當您維護開源代碼時,整個行業(yè)都可以對您編寫的代碼進行審查,評論和公開羞辱您。所以那里沒有壓力呀!
有很多文章指出,開源的好處之一就是由于這個事實它迫使您編寫干凈且可維護的代碼。對我而言,被迫編寫高質(zhì)量代碼的壓力不是很大的賣點,但對每個人來說,對吧?
回到重點:維護數(shù)百萬開發(fā)人員可能正在使用的代碼是一項重大責任。即使整個社區(qū)都在嘗試提供幫助,您如何確定他們具有與您相同的標準?您如何確定等待審閱的那十個PR已考慮了他們可能添加到項目中的所有潛在安全風險?
如果您做對的話,維護一個開源項目是一項非常艱巨的任務。不幸的是,它會很快導致倦怠。早在2018年,一名黑客就控制了一個開源存儲庫,并引入了竊取個人信息的代碼。那個人之所以這樣做,是因為被數(shù)百萬其他開發(fā)人員使用的OS項目的所有者和維護者因跟不上社區(qū)的要求而精疲力盡,以至于他們決定將項目交給其他人。
他們累了,其他人接管了。
輕松進入
有很多開源項目,所以一定要很容易上手,對嗎?
錯誤的。
如果您想開始為OSS項目做貢獻,找到一個正在積極尋求幫助,然后以項目維護者可以接受的方式提供幫助的工作就不那么容易了。一些項目公開聲明他們正在尋求幫助,甚至標記了最適合新手的問題(Node.js就是一個很好的例子,Node.js將其問題標記為“需要幫助”或“良好的第一問題”,這樣您就知道在哪里開始)。
當然,有些項目沒有這樣做-要么是因為他們沒有尋求外部幫助,要么是因為他們沒有與想要為他們的項目做貢獻的人的經(jīng)驗。
另一方面,如果您希望在自己的OSS項目上尋求幫助,那么事情會變得更加困難,因為實際上您沒有地方可以尋求幫助。是的,如果您在社交媒體上擁有大量關注者,則可能會找到人。否則,您將取決于項目的受歡迎程度以及它對其他項目的興趣。
您可以復制代碼并隨心所欲地對其進行操作
畢竟是免費代碼,對吧?
好吧,不完全是。
我們所有人中的海盜(承認,我們所有人都有)傾向于認為,如果一段代碼是免費提供的,那么我們可以使用它來做任何事情。這包括復制代碼并以另一個名稱重新分發(fā)它,甚至為此而聲名狼藉。
這就是我們發(fā)明許可證的原因(實際上,我不確定情況是否如此,但是您明白了)。每個希望被使用并吸引某種受眾的開源項目都應考慮選擇許可證。
這可以控制人們使用,更改和重新分發(fā)它的方式,從而保護您和您的用戶免受可能發(fā)生的任何非法行為的侵害。
與流行的看法相反,缺少許可證并不意味著您可以使用該代碼執(zhí)行任何操作。如果您在諸如GitHub之類的地方找到一個公共項目,那么存儲庫作者已經(jīng)在服務條款中約定了一些限制和含義。因此,如果您作為用戶找到?jīng)]有許可證的項目,請考慮其作者實際上決定不與任何人共享他們的代碼,并且您不能使用它。
如果您是作者,并且想了解哪種許可證最適合您的項目以及您的意圖,請參閱選擇許可證以開始使用。
所有開源項目都必須強制許可。而且,如果您要幫助甚至使用它,則應注意與所選許可證相關的隱式限制。
結論
開發(fā)人員對開源軟件有很多假設,因為我們通常不會為此付費。話雖這么說,這些假設是錯誤的,并影響到項目本身及其作者和維護者的生活。
原文鏈接:https://betterprogramming.pub/the-biggest-lie-in-open-source-de38f71aa88c