做者:神奈川
连接:https://www.zhihu.com/question/33573424/answer/57412434
来源:知乎
著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。
面试
公司为何要开源?
1. 树立品牌形象:公司与我的开源的动机不一样。公司开源不少状况下是为了提高外界对公司的形象认知。任何一个大科技公司,确定用了多多少少用了开源项目(Linux,至少吧?)。若是连一个开源项目都没有,这很容易给人形成,“这公司老是索取,却不回馈给开源社区”的形象(尤为在美国)。安全
2. 发掘潜在员工:好比,我读了谷歌的Android的代码,发现里面有个大安全漏洞,而后我提交一个修改把漏洞给补了。你说谷歌想不想拉起我去工做?不少公司一个很好的招聘渠道是开源项目的贡献者。若是能在公司开源项目作出有意义贡献的话,这个对于公司来讲是比面试好不少的能力证实。架构
3. 实现额外功能:这点实际上颇有意思,有的公司/项目实际上有不少想作的小功能,可是没时间也没人力去单独作。这个时候开源的力量就体现出来了,项目开源以后不少时候能吸引到开源贡献者来作一些本身感兴趣,项目想要,但项目没时间作的feature。我以前在http://Socket.io作的时候写的就是这样的一个小feature。ide
4. 扩大影响范围:公司开源项目的质量,不少时候能反映公司的影响力。因此硅谷的不少大公司,都有一些厉害的开源项目。一方面是回馈社区,一方面是展现公司的影响力和代码质量,吸引更多人才。一样,若是一个公司很但愿本身的一个产品有更大影响力的话,开源是个好方法。苹果的Swift就是个好例子。Swift开源以后,可以用在很多iOS以外的领域。说不定以后咱们还能看到用Swift写的网站架构。网站
5. 用做战略武器:开源项目还能够做为公司的战略武器。最好的例子就是谷歌的Android。经过开源和病毒式的传播一下追上iOS。这里面有不少弊端(好比碎片化严重),不过谷歌这么一招给了开发者十分大的力量,Android一下成为一个和iOS比肩的选项。spa