开源大胜背后,那些被忽视的人性挑战

发表时间: 2019-04-22 14:30

如今,开源无处不在。即使是最初视开源为“仇敌”的公司也开始积极地拥抱开源,“如果以市场的渗透率和接受度来衡量开源软件的竞争力的话,我们已然取得了全面的胜利”。下面是时候让我们的下一代开始了解开源了,编程之外,还有一系列道德问题等着我们来解答——开源胜利之后,当是人性的胜利。

作者 | 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翻译,转载请注明来源出处。