红帽白皮书新鲜出炉!点击获取,让你的云战略更胜一筹! 了解详情
写点什么

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

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

关注

评论

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

学习编程必须知道的三个网站

邱比特讲编程

GitHub 编程 Google Stack Overflow 编程工具

分布式锁主动续期的入门级实现-自省 | 简约而不简单

小小怪下士

Java 程序员 分布式 分布式锁

工赋开发者社区 | 架构瓶颈原则:用注意力probe估计神经网络组件提供多少句法信息

工赋开发者社区

HarmonyOS玩转ArkUI动效 - 水母动画

Halifax

前端 动画 HarmonyOS OpenHarmony arkui

灵魂拷问,你真的了解DNS吗?

蔡农曰

互联网 前端 后端 计算机网络

聊聊最适合程序员的一些画图工具?

程序员小毕

程序员 程序人生 后端 架构师 画图工具

通过假设地图进行产品待办列表排序

Bruce Talk

Agile User Story Product Owner 敏捷、

啃透这500页高并发笔记薪资涨了20K,并连收天猫,京东等5个Offer

钟奕礼

Java 程序员 java面试 java 编程

开始用ChatGPT写作

SkyFire

ChatGPT

MacBook免费的电脑管家CleanMyMac2023

茶色酒

CleanMyMac CleanMyMac X

小令案例 | 互联网消费分期产品引入令牌云服务,大幅提升进件转化

令牌云数字身份

身份认证 分布式数字身份 成功案例

网络编程与通信原理

Java 架构

Compose把Text组件玩出新高度

Halifax

android 前端 kotlin Compose android jetpack

别研究 ChatGPT 了,来看个国产好项目!

Java永远的神

程序员 程序人生 后端 架构师 开源项目

字节大神熬夜整理MyBatis+Redis+Kafka+spring源码与实战技术齐飞

钟奕礼

Java java编程 程序员、

极客时间运维进阶训练营第七周作业

老曹

非一线工程管理者的一对一沟通

俞凡

领导力 管理

工赋开发者社区 | 65页数字化工厂规划与建设详细方案 !

工赋开发者社区

从德鲁克管理实践看服务化架构

agnostic

微服务

架构训练营作业-模块2

张建闯

架构实战营

浅谈如何在小红书和知乎两大平台做好引流推广

石头IT视角

云与开源,共植数字世界的根

Apache Flink

大数据 flink 实时计算

元宇宙之数字孪生 孪数科技-企业元宇宙引领者

Jerry Tan

面试官:断网了,还能 ping 通 127.0.0.1 吗?

Java全栈架构师

程序员 面试 程序人生 后端 计算机网络

基于 docker-compose 部署单机版本 ELK

忙着长大#

ELK

关于ChatGPT的一切;CUDA入门之矩阵乘;PyTorch 2.0发布|AI系统前沿动态

OneFlow

人工智能 深度学习 AI

架构实战 - 模块 2 作业

mm

微信朋友圈 #架构实战营

微信朋友圈高性能复杂度

闲人Eric

架构实战营

2022-12-11:行程和用户。以下为输出结果,请问sql语句如何写? +------------+-------------------+ | Day | Cancellation

福大大架构师每日一题

数据库 福大大

Verilog 的连续赋值

攻城狮Wayne

Verilog Verilog语法 连续赋值

流处理基础概念-窗口与时间

穿过生命散发芬芳

流处理 12月月更

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