写点什么

开源项目的圈内圈外

  • 2013-08-09
  • 本文字数:1334 字

    阅读完需:约 4 分钟

昨天在整理几个星期前跟红帽开放源码与开放标准部门(OSS)技术总监 Carl Trieloff,以及 Gluster 社区总管 John Mark Walker 的对话记录。当时是在上海 Intel 园区的一个 oVirt 技术研讨会,活动规模不大,但是是国际交流,参加活动的也都是虚拟化、存储、网络这几个圈子里懂行的。

一直以来跟不同的人聊开源,发现大家对开源的理解都不一样。拿 WordPress 建站的 Web 开发者是一套思路,搞国产操作系统的是一套思路,在 Linux 内核、OpenStack 这样的国际社区搞代码的又是一套思路。虽然思路各自不同,不过有一点很有意思:大家都觉得自己的那套思路才是真正的开源。

Carl 和 John 属于国际开源社区的圈子,而且是相对底层的圈子,更加贴近硬件。应该说,如果靠近用户的工程师(尤其是 Web 层面)更像是半个产品经理或者营销人员,那么靠近硬件的工程师更像是纯粹的工程师。

在对话中,我聊到 JBoss 项目的红帽贡献者密度特别多的情况,问 Carl 这是不是一种代码管控的公司策略。Carl 对这个话题说了不少,今天将他的这部分回复整理出来分享一下,对于这个圈子之外的人,了解一下还是挺有意思的。不久之后,InfoQ 上会放出本次采访的完整内容。

以下是 Carl 对这个情况的解读:

历史上,在 JBoss 被红帽收购之前,他们整个采用了开源的开发模式——也就是说,产品和项目完全没有分离。这样相对来说比较简单一些。所以,他们在招聘方面非常激烈——几乎把所有给这个项目贡献过代码的工程师都收编了。到了我们收购他们的时候,大部分 JBoss 的贡献者都已经在公司内部了。

这样做,也好也不好。就当时的情况来说,在我们收购他们之后的几年间,因为需要的人更多了,所以又招了很多 JBoss 圈子的工程师到红帽,这事实上是把社区的贡献者都挖干了。

所以到现在,我们看到有很多 JBoss 品牌下的项目正努力在产品和社区项目之间达成一个平衡。比如,很多社区项目现在都有独立的名字,比如 Aquillian 和 WildFly 等。这些名字都是工程师自己取的。所以在这方面的推动下,现在有一些项目的外部社区又重新被培养出来了,好比刚才提到的 Aquillian,以及 Infinispan 项目,贡献者现在会比较丰富一些。当然了,不同项目的情况不同,有些 JBoss 子项目的红帽工程师比例还是非常高的,来自外部的人比较少。

所以我觉得,一个项目的内部工程师比例多少,只是招聘行为的自然结果。有些项目会觉得“我们收编了好多圈内人”是一个很自豪的事情,不过这不算是公司的策略。

拿 Linux 内核而言,我记得好像差不多在 5 年前,我们在内核领域的招聘非常猛,几乎把内核贡献的八成都承包了。到了今年,我们看到 Intel 开始活跃——他们在 3.39 版的贡献度是最高的。这实际上是新鲜血液进入的结果。内核贡献比例下降,并不是说我们的贡献变少了,或者是我们的内核开发者消失了。这只是整个蛋糕变大了的结果。我们想要看到更多这种稀释的过程。Intel 可能在一两个版本会保持头号贡献者的身份,之后可能其他人有个新的硬件要支持,或者别的什么情况,就变成了 IBM。再之后可能又是我们,再之后可能是富士通。

有这种变化,其实是非常棒的。这说明这个项目很健康,很有活力,刺激了更多人加入这个圈子,形成新生代。

本日作者简介

杨赛(@lazycai),InfoQ 中文站编辑。到处串门的互联网信徒,相信规则的力量。

2013-08-09 04:22968

评论

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

双指针算法之同向双指针

泽睿

Java 数据结构 面试 双指针算法

linux之chsh命令

入门小站

Linux

OpenSL ES

Changing Lin

9月日更

深入理解 Java 多线程核心知识:跳槽面试必备,Java算法基础面试题

Java 程序员 后端

科技的进步会造福人类吗--闲聊科幻

姬翔

9月日更

Parted 创建 GPT 分区

耳东@Erdong

Linux 9月日更 parted 磁盘分区

为何数据类大项目都会先做盘点??

奔向架构师

数据仓库 数据治理 9月日更

【Flutter 专题】49 图解 Flutter 与 Android 原生交互

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 9月日更

深入理解Java中的不可变对象(1),面试加分项

Java 程序员 后端

分享 4 个前端开发必备的 Chrome 扩展

devpoint

SVG chrome扩展 9月日更

数据结构和算法应用

Albert

算法 9月日更

手撸二叉树之二叉搜索树中的众数

HelloWorld杰少

9月日更

性能测试中集合点和多阶段问题初探

FunTester

性能测试 接口测试 测试框架 测试开发 FunTester

HTML进阶(三)

Augus

html 9月日更

Vue进阶(幺零八):npm run build 错误 (node:7852) UnhandledPromiseRejectionWarning: CssSyntaxError:xxxx. 解决分析

No Silver Bullet

Vue 9月日更

【LeetCode】有效的括号字符串Java题解

Albert

算法 LeetCode 9月日更

三分钟带你入门-redis-高可用架构之哨兵,大厂Java高级面试题汇总解答

Java 程序员 后端

深入理解JAVA虚拟机原理之垃圾回收器机制(一),Java开发6年了

Java 程序员 后端

Context 和 struct

Rayjun

struct Context Go 语言

常用特殊符号大全

入门小站

工具

Golang 中的好代码 VS 烂代码

baiyutang

编码 Go 语言 9月日更

服务注册与发现的原理和实现

万俊峰Kevin

微服务 服务注册与发现 microservice 服务发现 Go 语言

一名优秀的技术Leader是如何炼成的?

架构精进之路

管理 技术管理 引航计划 内容合集

写给互联网工程师的5G书 | 0. 前言

俞凡

架构 5G

深入理解Java中的不可变对象,这可能是目前最全的

Java 程序员 后端

Kubernetes环境Traefik部署与应用

Galen Suen

Kubernetes Helm Traefik

Mybatis Plus 的 @SqlParser 的说明与替代注解

玄兴梦影

注解 过滤器 Mybatis-Plus

网络攻防学习笔记 Day133

穿过生命散发芬芳

网络基础 9月日更

写给互联网工程师的5G书 | 1. 简介

俞凡

架构 5G

深入理解Java虚拟机-虚拟机执行子系统,字节跳动超高难度三面java程序员面经

Java 程序员 后端

Redis核心原理与实践--列表实现原理之ziplist结构

binecy

redis 源码分析

开源项目的圈内圈外_语言 & 开发_sai_InfoQ精选文章