写点什么

Facebook 开源的真正原因

  • 2015-07-30
  • 本文字数:1373 字

    阅读完需:约 5 分钟

OSCON 的第三天,来自 Facebook 的 James Pearce 带来了一场主题演讲,我也有幸在场。

Pearce 解释了 Facebook 为何大规模开源其软件。他告诉我们,Facebook 每个月都会发布数个开源项目,并且有数百个工程师会持续地支持这些项目——他们参与全世界的各个开源社区,改进软件的体验。

但是,Facebook 究竟为何要使用、支持和发布开源项目?这个问题比探究 Faceboot 如何做开源更有意思。

Pearce 大可以带我们回顾一下历史性的那一天,Mark Zuckerberg 坐在宿舍房间里,选择了 LAMP 作为 Facebook 的基础;他大可以跟我们说说 Facebook 的黑客社区;他也大可以侃侃 Facebook 所感受到的社会责任,但他没有这么做。这些都是真的,但都不是这家公司走上开源之路的真正原因。

真正原因到底是什么?对公司有利,仅此而已,Pearce 说道。

他的这个论断,一般人可能难以得其要领——我整个教学生涯也一直为这个问题所困扰——但 Pearce 提出了以下几个很棒的理由来解释从事开源的原因:

  • 共享 Facebook 的代码(通常是软件“栈”,偶尔也包括硬件设计)促进了这个世界的创新。这些代码帮助他人更快地开发软件。因为 Facebook 不是一家软件公司,所以它在开源过程中没有面临竞争对手的威胁,相反,开源带来的价值在逐渐显现。用户使用 Facebook 的开源代码可以更快地构建应用,而他们也乐于回馈代码,使 Facebook 从中受益。
  • 拥抱开源,意味着 Facebook 必须一开始就写出更优秀的软件。如果他们知道某个软件从诞生起就要公开,那就必须要好好做,提高可用性和可靠性,因为将来外面的人都会用它。这种压力也会给公司内部带来更多的价值。
  • 开源带来了共享挑战的机会。开源项目面临的难题会吸引一些外部的优秀人员,而结果是,他们也带动了公司内部人员的能力提升。每天 Facebook 都承载了超过一亿人的沟通互联,何以能做到?唯有开源的力量。

Facebook 的 GitHub 账户有 274 个代码库,收到了 39000 次 fork、提交了 79000 个 commit,并且拥有 242000 个关注者。他们开源的这些项目可不是黑客聚会上随便想出来的点子,或者实习生练手的代码。这些工具都是 Facebook 在产品中使用的。Facebook _ 只会 _ 拿他们真正在用的代码来开源——这样,人们才会相信 Facebook 提供的代码有价值,并且会得到持续的维护。仔细审视这些产品,Facebook 的工作方式就会在你眼前呈现。

Facebook 的开源办公室只有两个员工,所以开源项目团队的工作必须高效,他们需要自己去收集数据来判断项目的当前状态。他们大量使用 GitHub 的 API 去获取尽可能多的数据,每分钟都在获取。然后他们把这些数据收集起来实时地共享,并且每个月会做个月报。这给工作带来了些许刺激的趣味,开发人员们可以互相竞赛,看谁的项目表现更好。尽管被成功的光环笼罩,Facebook 总是力求做得更好。这就是为什么 Facebook 要加入 ToDo ,这就是为什么 Facebook 要参加今年的 OSCON。

本文由作者 Nicole C. Engard 发表在 Opensource.com 上: The real reason Facebook does open source 。经授权,在 InfoQ 中文站翻译共享。本文在 Creative Commons BY-SA 4.0 许可证下发布。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-07-30 08:167210
用户头像

发布了 77 篇内容, 共 38.8 次阅读, 收获喜欢 26 次。

关注

评论

发布
暂无评论
发现更多内容

文档解析技术指南:从传统Pipeline到端到端大模型

Baihai IDP

程序员 AI 文档理解 LLMs

WebGL 技术开发 MR 应用的技术难点

北京木奇移动技术有限公司

软件外包公司 webgl开发 MR应用

技术干货丨 OptiStruct 非线性之前车门过开分析(内附模型下载)

Altair RapidMiner

CAE 汽车仿真 仿真设计 车门仿真 非线性仿真

WebGL技术开发MR应用

北京木奇移动技术有限公司

软件外包公司 webgl开发 MR应用

1 行命令引发的Go应用崩溃

阿里技术

阿里云 命令 排查 Go应用

WebGL 开发 VR 应用的技术难点

北京木奇移动技术有限公司

VR开发 软件外包公司 webgl开发

字节的面试,感觉还挺简单的~

王中阳Go

Go 后端 面试题

以技术创新引领数据要素行业发展,隐语开源社区2024迈上新台阶!

隐语SecretFlow

测试右移的价值与实践体系:打造高效软件测试之路

测试人

软件测试

分布式系统架构7:本地缓存

卷福同学

Java 分布式 后端

从0到1:琴房预订小程序开发笔记(上)

CC同学

一文让你对mysql索引底层实现明明白白

京东科技开发者

WebGL 技术在 AR 中的应用及其优势

北京木奇移动技术有限公司

软件外包公司 webgl开发 AR应用

nginx适配Overlay以及测试工具

天翼云开发者社区

nginx 虚拟化

测试三大难题之一:“测试有效性”的应对策略

测试人

软件测试

Zilliz Cloud上新:容量提升3倍、享5折优惠,支持高精度搜索

Zilliz

zilliz cloud

主机防护如何更安全、高效? HSS新增多种特性,让你少走弯路

华为云开发者联盟

华为云 主机安全 云图说 新版本

向量数据库真的能满足所有 AI Agent 的记忆需求吗?

Baihai IDP

程序员 AI LLMs AI Agents

语义检索效果差?深度学习rerank VS 统计rerank选哪个

Zilliz

Milvus 重排 语义搜索 混合搜索

2024 TiDB 社区年度总结,又携手共进了一年,2025年,一起迎接变化,挑战变化!

TiDB 社区干货传送门

你知道网络安全相关法律法规都有哪些吗?看这里!

行云管家

网络安全 堡垒机

腾讯一面,感觉问Redis的难度不是很大

王中阳Go

redis 腾讯 面试 面试问题

探究获取亚马逊畅销榜API接口及实战应用

科普小能手

数据挖掘 数据分析 电商 亚马逊 API 接口

Linux内存泄露案例分析和内存管理分享

京东科技开发者

泳池机器人Aiper,从价值链高处“游”进全球庭院

脑极体

AI

Code Review:提升代码质量与团队能力的利器

京东科技开发者

CST软件如何仿真GPS上半球空间的辐射占比

思茂信息

cst cst操作 CST软件

TiDB 的 TiFlash 怎么用 | TiFlash 的最佳场景&稳定性管理

TiDB 社区干货传送门

7.x 实践

如何通过API接口高效获取自营商城商品详情与价格信息

代码忍者

API接口

人工智能如何影响社会公平与资源分配?

天津汇柏科技有限公司

AI 人工智能

Facebook开源的真正原因_语言 & 开发_曹知渊_InfoQ精选文章