首頁 > 科技

NET 開源的免費午餐結束了?

2021-06-15 03:04:12

作者 | Aaron Stannard

譯者 | 彎月 責編 | 歐陽姝黎

去年 10 月,IdentityServer 的兩位創建者和維護者 Dominick Baier 和 Brock Allen 宣佈,他們當前的商業模式本質上是不可持續的,因此他們將使用互惠公共許可(Reciprocal Public License,RPL)的付費許可模式,並在一家新公司 Duende Software 下提供 IdentityServer5。

近期,微軟宣佈他們的 ASP.NET 6 模板將繼續包含 Duende 的 IdentityServer 依賴項。IdentityServer 曾經是一款使用寬鬆的 Apache 2.0 許可的免費開源產品,並且是 ASP.NET 開發人員常用的處理 OpenID 和 OAuth 2.0 令牌的工具,因此多年來微軟的ASP.NET 模板一直會預設包含該庫。如今,微軟的流行模板中包含的 IdentityServer 要求年收入超過 100 萬美元的使用者每年最少支付 1,500 美元的許可費。

.NET 社群非常有風度地迴應了這則公告,他們仔細考慮了自己在通過支援獨立軟體供應商,促進 .NET 開源生態系統創新發展方面的作用,並認同 IdentityServer 通過年費的形式徵收許可費用,從而維護程式碼庫的行為非常可取,因為這總好過維護者放棄項目。

然而,.NET 社群的眾人陷入了恐慌,他們要求與.NET開源軟體的經理討論一些模板中包含的程式碼。最糟糕的問題在於,.NET開源軟體生態系統真正的管理者乃是微軟。

如今,圍繞微軟、IdentityServer 以及免費與付費「開源」軟體的話題討論層出不窮,因此我決定在本文中一起來探討一下.NET開源軟體的免費午餐結束,對使用者來說意味著什麼。

人心不足蛇吞象

每當看到人們濫用免費/定價過低/未經授權的資源時,我就會想起一句俗語:人心不足蛇吞象。

雖然從小商店偷一塊糖果不會被起訴,但是如果有人搶銀行,那麼一定會被繩之以法。

說起開源,如果維護者只需要支援少量的使用者,而且需求都很類似,那麼其實成本並不高,但一旦項目達到臨界點,而且使用者的要求超出了維護者的提供意願,那麼必須有一方付出代價。

IdentityServer 的使用者實在是貪心了。在過去的十年裡,大多數IdentityServer使用者都在貪婪地享用免費的晚餐,如今賬單來了。

不難想象,微軟的這個帖子(https://github.com/dotnet/aspnetcore/issues/32494)中出現了各種觀點:

  • 這是一項必不可少的服務,微軟應該收購Duende,並再次免費提供 IdentityServer;

  • 沒有人閱讀 Duende 的定價條款中有關「任何年收入低於 100 萬美元的公司或非營利組織都可以免費使用IdentityServer」的規定,因此很多人在抱怨;

  • 為仍在Apache 2.0下免費開源的IdentityServer4做貢獻,實在是太難了;

  • 也許微軟應該使用其他產品來代替IdentityServer,例如 https://github.com/openiddict/openiddict-core,或https://github.com/simpleidserver/SimpleIdServer,這樣免費的午餐就可以持續下去,直到這些項目也遇到與IdentityServer相同的可持續性問題。

而對於微軟選擇在某些模板中包含 IdentityServer,而不是包含採用了 RPL 條款的核心庫,人們的反映也很荒謬。

當突然要求開發人員每年支付 1,500 美元、4,000 美元或其他費用來購買「關乎到業務」的服務時,他們就馬上開始哭窮。

要知道,開發人員的專業知識不是能用金錢買到的,而且購買一個優秀的、經過實戰考驗的、文件完善的、高度可重用的解決方案,比如由領域專家構建的 IdentityServer,不僅比你自己花錢僱開發人員來做這件事便宜得多,而且風險也比較低。如果應用程式中身份驗證和授權錯誤之類的關鍵問題出錯,那麼肯定會讓你付出慘重的代價。

如果你是公司軟體這一領域的負責人,而且在為 Duende 區區幾美元的許可成本而苦惱,那麼請你幫個忙,辭職走人吧,因為你根本沒資格勝任這個職位。

我懷疑網上的有些人抱怨許可成本和裝窮,其實與成本無關,而是與採購部門有關。

採購部門的不滿

開源技術傳播如此迅速,且產生了如此巨大的價值的最大原因之一是,無需許可,任何人都可以採用、使用、修改和重新分發經過審查的開源軟體,而無需考慮部門預算。

但是,一旦維護人員開始收費,作為他們的專業知識和經驗的補償,則開發人員就只能與採購部門交涉,獲得批准才能購買這些產品。

採購部門審批機制的存在是為了徹查供應鏈中每個供應商的「風險」。通常採購機構都不會產生任何有意義的結果,只會讓雙方之間的交易變得更加昂貴和困難,因此軟體開發人員都不希望牽扯到這個環節。

對於 .NET 開發人員遇到的這種困境,我並不是特別難過。畢竟,這主要是他們的錯。

免費午餐結束

雖然你可以一直免費使用開源項目,但一旦他們決定收費,你就只能任由他們擺佈了。

就 IdentityServer 而言,我認為新版本的付費條款已經非常慷慨了:對 IdentityServer 開源軟體的支援將一直持續到 2022 年 11 月!

換作是其他項目,可能會完全放棄,任由使用者自生自滅。

開源軟體在 .NET 生態系統中的流行度越來越高,而且這種趨勢只會隨著時間的推移而加速,因此.NET 中的可持續性問題會更加普遍。幾年前,微軟就曾經為了使用者承擔起所有費用,並提供免費的庫,結果只讓.NET 生態系統陷入了一團混亂,我們不能再重蹈覆轍。

免費午餐已經結束,你清醒一點吧。

當你選擇各種包和技術來維護和構建.NET 應用程式時,就應該做好付費的心理準備。因為這是避免未來意外和供應鏈衝擊的唯一方法:現在就將其算入成本。

你應該養成向上遊依賴項貢獻價值的習慣,通過直接向你使用的項目做貢獻、捐款,或者是其他更好的形式,從維護者手中購買增值產品和服務。另外,你也可以通過部落格文章、視訊和課程來幫忙推廣他們的項目。如果你的業務軟體中使用了某個產品,那麼就應該通過各種途徑回饋,然而,大多數使用者都沒有選擇這麼做。

與開源軟體項目建立良好的交換價值迴圈是「開源可持續性危機」的必然結果,每個人都可以因此而受益。因此,現在就開始行動吧,為開源項目做貢獻,因為這些項目的持續發展最終也會觸及你的自身利益。

原文連結:https://aaronstannard.com/dotnetoss-free-lunch-ends/

聲明:本文由CSDN翻譯,轉載請註明來源。


IT145.com E-mail:sddin#qq.com