写点什么

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:167173
用户头像

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

关注

评论

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

构建云边端一体的分布式云架构,软硬结合驱动边缘计算创新场景

百度Geek说

人工智能 架构 分布式 边缘计算 企业号 3 月 PK 榜

HummerRisk 使用教程: 多云检测

HummerCloud

云安全

和细胞一样优雅的 TiDB Region 设计

TiDB 社区干货传送门

TiDB 底层架构

〖产品思维训练白宝书 - 认知篇①〗- 产品思维能够为我们带来多大的价值?

哈哥撩编程

产品经理 产品思维

软件测试/测试开发丨移动端App自动化之App控件定位

测试人

软件测试 自动化测试 测试开发

数据丢失不用怕,火山引擎DataLeap 提供排查解决方案

字节跳动数据平台

大数据 数据治理 数据研发 企业号 3 月 PK 榜

Hologres技术揭秘:JSON半结构化数据的极致分析性能

阿里技术

json 半结构化数据

熹微~~~基于Vue开发的昏暗风格的响应式网页!

京茶吉鹿

前端 项目 vue cli

ElasticSearch 拼音搜索自定义扩展插件(长拼音序列)

alexgaoyh

中文分词 分词 Elastic Search 自定义插件

龙蜥 Node.js/WebAssembly SIG 重磅发布 Node.js/Noslate 性能优化白皮书

OpenAnolis小助手

node.js Web 白皮书 龙蜥社区 sig

软件测试/测试开发丨利用 pytest 玩转数据驱动测试框架

测试人

软件测试 自动化测试 测试开发 pytest

软件测试丨JavaScript脚本注入,完成Selenium 无法做到的那些事

测试人

JavaScript 软件测试 自动化测试 测试开发 selenium

用友BIP智能财务,助力企业构建世界一流预算管理体系

用友BIP

全面预算

TiDB Operator常见问题和解决步骤(二)

TiDB 社区干货传送门

故障排查/诊断

基于TiDB Binlog架构的主备集群部署及数据同步操作手册

TiDB 社区干货传送门

管理与运维

审计录像是什么意思?堡垒机有审计录像功能吗?

行云管家

堡垒机 审计 审计日志 审计录像

DTALK直播预约 | 数据资产管理:金融机构数据价值释放的必经之路

袋鼠云数栈

数据资产管理

TiDB × 阿里云试用体验(随迟但到)

TiDB 社区干货传送门

版本测评

bytebase让你爱上tidb的开源审核神器。

TiDB 社区干货传送门

6.x 实践

【3.24-3.31】写作社区优秀技术博文一览

InfoQ写作社区官方

热门活动 优质创作周报

利用自动化平台可以做的那亿点事 |得物技术

得物技术

自动化

数据擘画资产全景 AI诊断故障真因

用友BIP

火山引擎A/B测试产品——DataTester 私有化架构分享

字节跳动数据平台

私有化部署 ab测试 A/B 测试 企业号 3 月 PK 榜

集群3副本丢失2副本-unsafe-recover

TiDB 社区干货传送门

实践案例 管理与运维 6.x 实践

基于TiDB+Flink实现的滑动窗口实时累计指标算法

TiDB 社区干货传送门

应用适配 HTAP 场景实践 大数据场景实践 实时数仓场景实践 OLTP 场景实践

微服务架构中的链路超时分析

Java 架构 微服务

飞针测试的流程有哪些?华秋一文告诉你

华秋电子

TiDB Operator常见问题和解决步骤(一)

TiDB 社区干货传送门

实践案例 集群管理 管理与运维 故障排查/诊断

都想成为架构师,那架构师需要掌握哪些知识体系呢?

TiDB 数据库大版本升级-基于TiCDC异机升级

TiDB 社区干货传送门

迁移 版本升级

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