写点什么

开源项目的圈内圈外

  • 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:221071

评论

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

思想无语言边界:以cglib介绍AOP在java的一个实现方式

八苦-瞿昙

随笔 随笔杂谈 aop

架构师训练营 - 第 6 周命题作业

红了哟

架构师训练营第七周作业--web压测工具

CATTY

JDK1.8新特性(三):Lambda表达式,让你爱不释手

xcbeyond

Lambda 新特性 JDK1.8 JDK1.8新特性

架构师训练营第七周学习总结

张明森

ARTS打卡-07

Geek_yansheng25

谈谈你是如何理解JS异步编程的,EventLoop、消息队列都是做什么 ,什么是宏任务,什么是微任务?

GKNick

运行 client-go 测试用例.md

FeiLong

Kubernetes

redis系列之——事物及乐观锁

诸葛小猿

redis 乐观锁 事物 原子性 隔离性

从推特被黑看安全木桶效应

石君

安全设计 安全事件

道德的神

多选参数

故事

架构师训练营 - 第 6 周学习总结

红了哟

用 GitBook 创建一本书

耳东@Erdong

git markdown gitbook

发布一本用 GitBook 编辑的书

耳东@Erdong

git gitbook

JDK1.8新特性(二):为什么要关注JDK1.8

xcbeyond

新特性 JDK1.8 JDK1.8新特性

JDK1.8新特性(四):函数式接口

xcbeyond

新特性 函数式编程 JDK1.8 JDK1.8新特性

第七章作业

小胖子

Go: 通过例子学习 Map 的设计 — Part I

陈思敏捷

map Go 语言

架构师课程第七周 作业

杉松壁

web 性能压测工具类

jason

Golang实现结构体数组按多字段排序

卓丁

多字段排序 结构体多字段排序 Go 语言

多问为什么

声远

技术 沟通 软件开发流程

计算机网络基础(六)---网络层-网络地址转换NAT技术

书旅

laravel 计算机网络 网络协议 计算机基础 NAT

Vagrant 创建多台主机

FeiLong

vagrant 虚拟机

我关闭了微信朋友圈广告!

诸葛小猿

广告 微信朋友圈 关闭

关于性能优化的总结

罗亮

Windows Sandbox应用

Dare Devor

容器 Sandbox 虚拟化

罪羊树——暴力也是种优雅

烫烫烫个喵啊

算法 二叉树 替罪羊 平衡二叉树

架构师训练营第七周作业

张明森

Java中生成随机数的不同方法

wjchenge

Prometheus 删除指定 Metric

耳东@Erdong

Prometheus metrics

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