编辑
2022-06-22
日常
00
请注意,本文编写于 668 天前,最后修改于 509 天前,其中某些信息可能已经过时。

目录

为什么要开源?
从无私的角度看,为什么要开源?
从自私的角度看,个人为什么要开源?
从自私的角度看,公司为什么要开源?

为什么要开源?

在不太久远的过去——大概也就是十多年前,互联网精神代表着自由、平等、共享——人人为我,我为人人。维基百科、CC 协议、FTP 服务器、P2P(不是那个臭名昭著的理财模式),包括开源软件,都是那个时代的产物。

但在今天的移动互联网大潮中,主流思维已变成了商业化、消费主义、版权、信息壁垒。无怪乎新时代的互联网子民,已经不理解为什么有人会无私地奉献。“一定从中得到了什么利益”,他们揣测道。

作者:孙天任
链接:https://www.zhihu.com/question/33573424/answer/717622627
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

从无私的角度看,为什么要开源?

  1. 建立社区:可以这么说,如果没有开源社区,苹果,谷歌,Facebook 都不会是现在这样。如果没有 Linux,现在互联网的格局简直无法想象。为了让更多人能够使用优秀的产品,需要有人来愿意把自己的产品免费给他人使用。很多开源社区的贡献者都是为了建立,维持这样一个互助互利的社区而不断努力的。

  2. 帮助他人:开源一个很美妙的地方就是,别人不用花时间解决一样的问题。当你看到你的一个大问题已经有人做了开源项目的时候,你一定感觉如释重负。同样,有人感谢你的开源项目帮他们解决了一个大问题,真的是种很美妙的成就感。

  3. 结识朋友:开源社区中经常能遇到很多志同道合的好朋友。你帮我改代码,我帮你加功能,说不定两个人就认识成了好朋友。我和我现在的一位导师和几位朋友就是在贡献开源项目的时候认识的。

从自私的角度看,个人为什么要开源?

  1. 提升代码质量:开源是提升个人代码质量的好方法。这个有两个方面:首先,如果你知道你的代码要给别人看,你会不自觉的把代码写的更干净一点,多加点说明。其次,开源之后别人会建议怎么改(如果你的项目有一定影响力),给你建议的人多了,你也大概就有概念怎么把代码写的更好了。

  2. 展示个人代码:如果你在找工作,这个很可能会是你的主要动机。公司实际上很好奇你写的代码质量如何,但是光从 1 个小时的面试实在看不出太多。所以很多公司会非常喜欢看你的开源项目,来评估一下你的代码质量如何。同样,如果你面试的时候告诉公司,“我有个开源项目,你们可以去看看”,这将是个不错的加分项。

  3. 建立个人品牌:如果你足够厉害,把一个优质项目开源是个迅速提升影响力的好方法。很多在大公司工作过的顶级工程师,我们都是通过他们的开源项目认识的。git 的发明人,Linus Torvalds,就是一个好例子。一个工程师如果在工作之外想要树立个人品牌的话,写一个高质量的开源项目是个相当好的选择。

  4. 备份个人项目:其实很多人把项目放到 Github 的时候根本没想这么多。。。他们只是想把家庭作业,代码练习啥的备份到网上去而已。。。其实 Github 当中绝大部分项目都是这种实际没啥用的代码备份(只是 Github 没让你看到)。。

从自私的角度看,公司为什么要开源?

  1. 树立品牌形象:公司与个人开源的动机不同。公司开源很多情况下是为了提升外界对公司的形象认知。任何一个大科技公司,肯定用了多多少少用了开源项目(Linux,至少吧?)。如果连一个开源项目都没有,这很容易给人造成,“这公司总是索取,却不回馈给开源社区” 的形象(尤其在美国)。

  2. 发掘潜在员工:比如,我读了谷歌的 Android 的代码,发现里面有个大安全漏洞,然后我提交一个修改把漏洞给补了。你说谷歌想不想拉起我去工作?很多公司一个很好的招聘渠道是开源项目的贡献者。如果能在公司开源项目做出有意义贡献的话,这个对于公司来说是比面试好很多的能力证明。

  3. 实现额外功能:这点实际上很有意思,有的公司/项目实际上有很多想做的小功能,但是没时间也没人力去单独做。这个时候开源的力量就体现出来了,项目开源之后很多时候能吸引到开源贡献者来做一些自己感兴趣,项目想要,但项目没时间做的 feature。我之前在http://Socket.io做的时候写的就是这样的一个小 feature。

  4. 扩大影响范围:公司开源项目的质量,很多时候能反映公司的影响力。所以硅谷的很多大公司,都有一些厉害的开源项目。一方面是回馈社区,一方面是展示公司的影响力和代码质量,吸引更多人才。同样,如果一个公司很希望自己的一个产品有更大影响力的话,开源是个好方法。苹果的 Swift 就是个好例子。Swift 开源之后,能够用在不少 iOS 之外的领域。说不定之后我们还能看到用 Swift 写的网站架构。

  5. 用作战略武器:开源项目还可以作为公司的战略武器。最好的例子就是谷歌的 Android。通过开源和病毒式的传播一下追上 iOS。这里面有很多弊端(比如碎片化严重),不过谷歌这么一招给了开发者十分大的力量,Android 一下成为一个和 iOS 比肩的选项。

作者:神奈川
链接:https://www.zhihu.com/question/33573424/answer/57412434
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

有偿服务会把双方关系从平级变为甲乙方,一旦接受有偿服务,服务提供者就会背负无止尽的bug修复和版本更新,直到付费者满意。这是我作为一个软件开发者最大的压力来源。

你可以主动打赏给你觉得给你帮助的人,但没有资格在开源社区大放厥词声称让付费成为主流,这是对开源精神的倒行逆施。

本文作者:TyrantGenesis

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!