開源的全面勝利背後,那些被遺忘的人性問題
如今,開源無處不在。即使是最初視開源為“仇敵”的公司也開始積極地擁抱開源,“如果以市場的滲透率和接受度來衡量開源軟體的競爭力的話,我們已然取得了全面的勝利”。下面是時候讓我們的下一代開始瞭解開源了,程式設計之外,還有一系列道德問題等著我們來解答——開源勝利之後,當是人性的勝利。
作者 | Reuven M. Lerner
譯者 | 彎月
責編 | 仲培藝
出品 | CSDN(ID:CSDNnews)
以下為譯文:
重返 1988 年的秋天,那時我剛上大學,發現了一個名為 Emacs 的文字編輯器。實際上,它的全名是“GNU Emacs”。很快我就瞭解到“GNU”代表一種名為“自由軟體”的東西,而這不僅僅是免費的意思。GNU 的粉絲們在談論到這種軟體的時候都非常激動,就好像整個世界的命運取決於他們的軟體能否取代商業軟體。
對於我們這些使用程式的人來說,無論是 GNU 的軟體,還是其他同樣免費的軟體,我們都感覺自己使用的是質量很好的程式碼。但對於學校和工作中的同事來說,他們會覺得我們有點奇怪,他們認為我們的軟體沒有得到大型商業公司的支援。(我還記得,大學期間在惠普實習時,我告訴我們團隊中的其他人我編譯、安裝並開始使用一個名為“bash”的新 shell,而且這個 shell 比我們使用的“k shell”更好。而當時那些人的反應是有點困惑,又有點驚恐。)
隨著時間的推移,我開始使用越來越多的這類“自由軟體”定義的程式,用得最多的是 Linux、Perl 和 Python,當然還有很多其他的程式,包括Emacs(我現在還在用)、sendmail(幾乎是當時唯一的 SMTP 伺服器)、DNS 庫等等。1998 年,Tim O'Reilly 認為儘管“自由軟體”的初衷很好,但需要更好的協調和營銷。因此,“開源”一詞開始走向大眾化,並開始強調其在哲學和社會層面的實際利益。
當時我已經進入了諮詢業,我經常苦口婆心地勸說我的客戶(無論是小型創業公司還是大型跨國公司),告訴他們可以信任那些不花錢、由志願者開發且任何人都可以修改的程式碼。
然而,不管你信不信,營銷確實有效。“開源”這個詞讓人們的思想更加開放。雖然很緩慢,但是情況確實發生了變化:IBM 宣佈將在 Linux 和開源軟體上投入大量資金。Apache 開始構建 httpd 伺服器,併成立基金會,贊助了越來越多的開源專案。Netscape 迅速經歷了曇花一現,在破產之前釋出了開源軟體 Mozilla 瀏覽器(並擁有瀏覽器自身的基金會)。紅帽的成功證明我們可以建立成功的開源公司,銷售高質量的服務和支援。而這些只是當時名噪一時的企業和軟體。
隨著每一項重大公告的宣佈,商業公司使用開源的阻力開始逐步減少。由於各個公司看到其他依賴開源的成功事例,所以他們也同意使用開原始碼。
時至今日,開源軟體無處不在,無論是小公司還是大公司都會使用開源軟體。如今還有商業版的 UNIX,但人們期待和談論的還是 Linux。而且 Linux 確實無處不在。我的 Python 和 Git 課程在一些公司中很受歡迎,他們希望我教他們的員工提高對這些技術的熟悉程度。雖然以前一個人有可能知道或瞭解大多數主流的開源軟體,但如今卻完全不可能了。
幾年前,在飛機上,我座位上的螢幕出現了一些問題。我向空乘人員求助,她告訴我最簡單的方式是快速地重啟螢幕。想象一下我有多麼驚訝,我坐在 3 萬英尺的高空看著 Linux 重啟!就在那個瞬間,我突然意識到開源——這個廉價又可供人們隨意檢視和修改的軟體確實融入了我們的生活。
令我驚訝的是,即使是當初極力反對開源軟體的公司如今也開始大力倡導開源,這肯定不是出於愛情,而是因為這是市場的發展方向。如今微軟不僅使用開源,還積極參與和支援社群,鼓勵使用開源,甚至為開源做貢獻。
那麼,我們真的實現了開源軟體的全面勝利嗎?答案是既肯定又否定。毫無疑問,開源軟體的時代已經到來,開源的成功遠遠超出了我的想象。我主要的生活來源就是給世界各地的公司員工分享 Python 和 Git 課程,這些技術的需求一點都沒有被誇大。各家公司正在迅速採用開源軟體,同時降低成本並提高靈活性。學生們也在學習使用開源技術和語言。
因此,我的答案是肯定,如果以市場的滲透率和接受度來衡量開源軟體的競爭力的話,我們絕對取得了全面的勝利。當然,我們還有很多工作需要做,但迄今取得的成就真實、有目共睹,而且令人欽佩。
但是,開源軟體的普及程度還不夠,而且也沒有佔據主導地位。只有少數有足夠的先見之明的人可以預見,世界上互相聯網的計算機、電話和裝置產生了大量資料,儲存在我們無法觸及的地方,通過我們無法訪問或檢視的演算法進行分析,並做出相應的決策,而這些決策將影響我們的職業、教育和醫療等各個方面。
此外,長期以來狡猾又唯利是圖的商業模式——廣告,也帶來了巨大的權衡,因為許多公司對我們的瞭解甚至超過我們自己。不可思議的是,廣告支援的服務通常很好用,而且是免費的,導致我們忽略了與之分享一切所帶來的後果。
從如今年輕人的角度來看,網際網路始終與我們密不可分,智慧手機也將長期存在,我們手機和電腦上使用的應用都是免費的。你只是需要分享一些個人的資料,那又怎麼樣?人們似乎不再像從前那般關注隱私,也不再那麼在乎與這些公司分享資料了。也許是因為人們從這些服務中獲得了實實在在的好處,也有可能是因為人們並不知道他們的資料都被用來幹什麼了。
2019 年 4 月的 Linux Journal 月刊討論的都是關於孩子的問題,這也是我們 25 週年的紀念刊物,所以我們可以利用這個時機想一想“應該如何讓我們的孩子瞭解開源軟體?”
幾年前,麻省理工學院將其電腦科學入門課程從傳統的 Scheme 課程改成了 Python 課程。這引起了巨大的轟動,而且還影響了數百所大學,如今他們統統開始使用 Python 課程。在麻省理工學院做出課程調整時,編寫課程的教授表示,對於如今的軟體工程師來說,學習程式設計遠遠不夠,你還需要學習道德等主題。許多程式設計師將來都面臨道德選擇的問題,因此在工作中遇到這些問題之前,認真考慮這些問題是很重要的。我不得不說,單單是搞清楚什麼是道德問題本身就頗為棘手,而許多開發人員可能從未考慮過這個問題。
所以,教我們的孩子學習 Linux 和開源軟體非常重要。但是,只教他們技術方面的東西還不夠。我們還需要告訴他們工作中社會方面的問題,以及當今程式設計師所擁有的巨大影響力和力量。對於一家公司而言,掙的錢少沒關係,但是還有一種選擇可能就是做違法的事情了。
教孩子們學習和討論機器學習也非常重要,這不僅僅涉及技術,還要理解模型的工作原理,出錯的方式,以及為了確保模型正確地工作需要付出哪些努力。此外,還需要討論如何以及何時將這些演算法公之於眾並提交公眾審計。
另外,我們需要解釋清楚這些問題沒有完美的答案,有意見分歧也是完全可以接受的。但是,提出這些問題是一項重大的責任,孩子們從小就開始學習程式設計具有現實意義。我們不會讓一個孩子開車,除非他們能夠明白(最基礎的理解)他們的行為將會對他人造成怎樣的影響。我並不是說程式設計師也應該考程式設計師證,而是說我們應該經常討論這些重要的問題。
原文:https://www.linuxjournal.com/content/open-source-winning-and-now-its-time-people-win-too
作者:Reuven M. Lerner,Python、資料科學和Git的老師。
本文為CSDN翻譯,轉載請註明來源出處。