在我最近讀到的一篇論文中,作者將他們的軟體宣傳為開源,因為它是根據 Apache License 2.0 在 GitHub 上發布的。但是,該軟體是專有(閉源)和非自由軟體的插件。此外,它是使用 C# 和 .NET Framework 開發的,至少從歷史上看,它並不被認為是開源或免費軟體。基於此,給這款外掛開源軟體貼上標籤真的正確嗎?
答案1
這個問題的答案是一個頗具爭議的話題……也許主要是在開源硬體社群內。
從根本上來說——”如果編輯/建立原始程式碼所需的工具本身不是免費使用的,是否可以將專案稱為開源專案?」
例子:
- 建置時依賴非免費使用的工具的專案(例如:使用 Altium 設計的硬體專案)
- 具有執行時間依賴性和不可免費使用的操作環境的專案(例如:設計用於在 Windows 上使用的軟體專案)
在我看來,如果答案是“不”,那麼一個極端的例子就是任何僅在非自由作業系統(例如 Windows)上執行的軟體不能被稱為“開源「……就算是這樣可以在模擬環境中運行,例如葡萄酒,它不是為這種用途而設計的。
然而,我的觀點是,如果來源開放供任何人檢查和審查,那麼“是的“ 可以將該項目稱為“開源」。
請記住,「來源“ 在 ”打開來源「是指原始檔案 - 專案的原始組成部分,與各種工具一起使用以產生可用的最終結果。
」來源「 蓋子:
- 應用程式原始碼
- 建置基礎設施或腳本(例如:產生檔案)
- 專案文件(例如:VCProj)
- 文件
- ETC...
人們可以修改和分享的東西,因為它的設計是公開的
請注意,C# 工具和 .NET 確實是「免費使用」的,但它們是「閉源的」:
https://visualstudio.microsoft.com/downloads
Visual Studio 社群 2017
學生、開源和個人開發者的免費且功能齊全的 IDE
答案2
根據您提供的信息,該加載項是絕對地免費且開源。 「免費」部分是因為它是根據 Apache 許可證獲得許可的。而且它是開源的,因為他們提供原始碼。
該插件是為非免費的閉源應用程式製作的這一事實是無關緊要的。該應用程式是一個完全不同的實體,與加載項的「自由度」或其來源無關。程式語言也是如此。您可以取得該加載項並根據 Apache 授權條款重新分發它,並修改所提供的原始程式碼。
答案3
如果有人說任何東西是「開源」的,您應該問自己,您是否能夠查看該產品包含的完整程式碼。如果答案是肯定的,那麼它確實是「開放的」。當然,OSI有明確的定義“開源”,這給了您更多的權利並消除了許多限制。 「開源」通常被認為沒有那麼嚴格“自由軟體”基於 Richard M. Stallman 和自由軟體基金會的定義。從他的角度可以找到一些推理這裡。
我想說,就您而言,該軟體似乎實際上是 OSI 意義上的開源軟體,因為許可證賦予您所有權利。如果沒有 .NET Framework,該軟體就沒有多大幫助,這是另一回事 - 您仍然可以在沒有 .NET Framework 的情況下使用該軟體法律上的限制到 .NET 框架。您可能會看一下,也許該附加元件本身實際上可以使用 .NET Standard 運行,誰知道呢 - 但這並不能改變事實,它很可能是「開源」的。我不會將其描述為自由軟體,因為我不知道該程式如何對待其用戶。我不一定同意@keltari。