在 Linode 取消贊助後,StandardJS 暫停終端中的廣告實驗
已發表: 2019-08-29Feross Aboukhadijeh 是 StandardJS 庫、JavaScript 樣式指南、linter 和自動代碼修復程序的維護者,上周啟動了一項實驗,在終端中放置廣告以資助開發。 該實驗在收到開發者社區的負面反饋後暫停,導致最初贊助商之一的 Linode 刪除了其廣告。
“我認為當前維持開源的模式行不通,我們需要更多的實驗,”Aboukhadijeh 說。 “這是一個這樣的實驗。” 他開發了一個模塊,可以在安裝 Standard 14 時插入廣告。 贊助資金用於支付維護人員的時間,他將其定義為“編寫新功能、修復錯誤、回答用戶問題和改進文檔”。
Aboukhadijeh 是一位多產的開發人員,他在 npm 上編寫了 100 多個包,每月下載 100+ 百萬次。 Standard 是他最受歡迎的開源項目,並被知名項目和公司使用,包括 Node.js、npm、GitHub、Automattic 等等。

Aboukhadijeh 說,他的實驗目標是讓 Standard 和其他開源項目更健康。
“出於復雜的原因,公司通常會猶豫或不願意直接資助 OSS,”他說。 “當它發生時,它永遠不夠,它永遠不會到達傳遞依賴的包(即沒有人明確安裝的包,因此沒有人知道存在)。 從本質上講,我們擁有一種被大量用戶消費的公共產品,但幾乎沒有人為此付費。 幸運的是,有一種融資模式通常適用於像這樣的公共產品——廣告。”
以下是作為初始實驗一部分的 LogRocket 廣告示例:

雖然一些開發人員表示支持開源維護者以他們選擇的任何方式將他們的項目貨幣化,但 GitHub、Hacker News、Reddit 和社交媒體上的大多數反饋強烈批評了這種特殊方法。
Stoplight 的開發者 William Hilton 推測這種類型的廣告成為一種流行的融資模式的後果:
我確實擔心 npm install 最終會成為一長串橫幅廣告,並且不會擴展。 因為如果每個 npm 包都添加廣告,那麼每個廣告的顯著性都會降低。 (有趣的是,最有價值的“不動產”將是最後顯示橫幅的軟件包,因此如果它變成字面上的“競相到底”,人們可能會在他們的安裝後腳本中添加睡眠語句,以便它們顯示在最靠近底部。多麼反烏托邦的安裝體驗!)
他還指出,Yarn 會阻止安裝後腳本的輸出,在這種情況下,這些腳本將用作內置的廣告攔截。 Yarn 的維護者在線程中加入了更多上下文。
“作為 Yarn 的維護者,我強烈反對這種模式,儘管不是出於你想像的原因,”Mael Nison 說。 “安裝後腳本會取消優化包並破壞工作流程。
“Yarn 已經不會打印構建日誌,除非它們使安裝崩潰,因此這個安裝後腳本不會對我們的用戶產生任何可見的影響。 儘管如此,從維護者和用戶的角度來看,我仍然非常重視生態系統的健康,我很樂意討論我們如何以更集成和更少干擾的方式滿足這個用例。”
由於這是一個較新的實驗並且還沒有成為主流,因此尚不清楚 npm 是否會決定在未來阻止所有通過終端提供廣告的方法。 為響應 Aboukhadijeh 的資助模塊,創建了一個名為 No CLI Ads 的新模塊。 它阻止廣告出現在控制台輸出中。 npm-adblock 是一種以不同方式運行的替代方案。 阻止這些類型的廣告的簡單但不方便的方法的存在可能是乾涸任何潛在收入來源所必需的。
對該實驗的反饋表明,人們普遍支持尋找開源資金問題的解決方案,但大多數人同意終端廣告不是一個可行的選擇。 事實上,許多評論者認為這種方法是包維護者可以做的最煩人的事情,除了刪除包。 開發人員不希望在安裝依賴項時收到垃圾郵件。 一位評論者將他的終端描述為“最後一個據點”和“和平的避風港”,不提供來自企業霸主的廣告。

“銷售廣告空間並不具有創新性,”開發商 Matthias Hogerheijde 說。 “而且這在我的日誌中特別無用。 對我來說,問題更多的是我不想要那些對我的日誌沒有幫助的東西。 我完全同意將您的“由 X 公司支持”放在自述文件中。 這有助於我理解,當我看到某些公司向 OSS 捐款時,它確實引起了我的共鳴。 我也想生活在一個完美的世界裡,每個開發者都可以生活、支付租金並且只從事他們喜歡的項目。 對我來說,完美的世界不包括終端中的廣告。”
Reddit 評論者對這個想法進行了幽默的抨擊,撰寫了中斷構建過程的示例廣告:

Linode 從 Standard 的終端廣告實驗中撤出贊助
對終端廣告不滿意的 Standard.js 用戶向贊助商投訴,Linode 決定將其廣告從實驗中刪除。
我們聽到你響亮而清晰的聲音。 我們已經重新考慮並刪除了該廣告。
— Linode (@linode) 2019 年 8 月 25 日
“在反映了開發者社區的反應後,我們重新考慮了,”Linode 代表在 Twitter 上說。 “我們仍然與@feross 一起熱情地支持開源軟件,但我們會更加謹慎地在未來進行試驗,同時繼續創新。”
在暫停實驗之前,Aboukhadijeh 報告說他已經籌集了 2,000 美元,足以資助他花五天時間發布標準 14。
“如果我們能夠籌集到額外的資金,接下來我想關注的是 StandardJS 中開箱即用的 TypeScript 支持(最常見的功能請求之一!)以及各種文本編輯器插件的現代化(其中許多目前沒有維護),”Aboukhadijeh 說。 “如果社區中的其他人有興趣在這些問題上發揮帶頭作用,我想向你提供一些資金。”
該實驗並沒有完全脫離桌面,因為它似乎已經達到了 Aboukhadijeh 的直接目標之一,儘管開發者社區很煩(並且在某些情況下會激怒)。
四天前,Standard 因討論新的融資模式變得太熱而鎖定了 GitHub 線程。 該項目的維護人員現在正在評估該實驗的迭代,但討論超出了開發人員是否喜歡其終端中的廣告的簡單問題。 該項目的 repo 上有一個新線程,標題為“現在開源有什麼問題?” 已經將一些負面反饋轉移到更廣泛、更有成效的討論中。
該實驗重新引發了關於開源可持續性以及項目維護者希望看到它在未來走向何方的重要對話。 在最近的一條推文中,Aboukhadijeh 分享了一個鏈接,指向一位維護者在支持免費語法高亮庫時面臨的特定情況。
highlight.js 的原作者 Ivan Sagalaev 在收到因錯誤導致依賴關係中斷的發布後收到緊急評論和電子郵件後,恰當地總結了企業與開源項目之間關係的當前狀態:
親愛的工程師們,請以此為契機,向您的特定業務人員解釋他們的全部知識產權只是在由業餘愛好者懶惰維護或由其他企業支付費用的搖搖欲墜的開源代碼基礎之上的一個薄層心中有自己的目標。
如果他們真的想要穩定性,他們必須通過例如僱傭工程師來處理無數的依賴關係、維護本地穩定的分支、向上游貢獻補丁或其他方式進行投資——關鍵是它不應該看起來像“只是在仙塵上工作。
