近期,有关开源的负面消息一个接一个,开源的问题逐渐被暴露出来。本期robust就来聊一聊,我眼中的开源,以及涉及的相关问题。本期不是在寻找一个答案,只是在发出我自己的声音和看法。
在线收听
网易云音乐:点击播放
喜马拉雅:点击播放
你还可以在苹果自带的 Podcast 应用、小宇宙APP、QQ音乐中搜“Robust”找到我们的节目收听。
捐赠支持
求打赏🙇如果你觉得 Robust 这样一档技术类的谈话节目还不错,希望我继续做下去,不妨打赏支持。
内容大纲
- 2018年8月,redis在其模块中修改开源协议AGPL到Apache v2.0,并增加了commons clause
- 知名fake数据库faker.js作者Marak喊出口号:Pay Me or Fork This
- babel传资金问题,开始在官网挂赌博网站广告
- 知名跨端项目weex在apache孵化失败,撤回自建
- 鸿蒙开源了,但是喷的不少
近期3种主流的抱怨声:
- 知名项目作者或负责人抱怨项目被广泛应用但自己却受益很少
- 个人项目维护者抱怨白嫖现象严重
- 开源项目使用者抱怨项目是个kpi项目,缺乏长期稳定的维护
- 文档类知识类项目star飞天,而真正的技术项目无人问津
这期节目讨论这些问题:
- 我要写的这个项目,要开源吗?
- 我写好的这个项目,要开源吗?
- 我开源的目的是什么?
- 我开源的途径有哪些?
- 我要做哪些开源的准备?
- 如何发布我的开源项目?
- 如何做好推广宣传?
- 如何运营开源项目?
- 如何做好开源生态?包括软件工具生态和社区生态
- 如何从开源中获益?
如何决定我是否要开源?
- 开源免费是获客之道,所谓“开源经济学”
- 个人项目,没有打算办公司卖软件的想法,开源赚个吆喝
- 小公司项目,开源就是为了赚个吆喝,提供Pro版卖钱
- 涉及核心算法,开源等于葬送前途
- 拆分开源,可能被喷
发布开源前要检查如下内容:
- 代码是否没有明显bug
- 是否有可以一键启动预览的能力
- 是否有完善的文档(多语言)
- 是否有较高覆盖率的单元测试
- 是否已经建立了配套设施
- 是否建立了官网
- 是否发布了项目cli工具或相关生态工具
- 是否策划了第一波开源推广
运营推广:
- 前期star是主要目标
- 依托公司提供的渠道,全战线出击
- 前期issue越多越好,热起来
- 制造争议话题
- 后期issue越少越好
- 国内海外一起推,曲线救国
- 花钱推广不丢人
- 推广的本质就是渠道管理
从开源中获益:
- 开源项目的独特性和开创性决定了收益的最终大小
- star的数量在成长期决定了收益大小
- 写项目可以提升思维,锻炼编码的能力
- 运营项目,运营一个有star数量的开源项目,是个人价值的重要体现,团队的价值大于项目本身
- 卖掉一个项目
- 从捐赠中受益
- 基金会是独立项目的救星,不过,只有好的管理人才能可持续
- 公司开源,基本就是赚吆喝,不会有什么纯粹的收益,但可以自己从中挖掘:
- AB版
- 挖人
- 结合云,一起卖
价值观:
- 从来没有项目是一开始做开源到伟大的,从业务中来,到业务中去
- 造轮子必不可少,但是大浪淘沙,最后该放弃还是要放弃
开源的玩法:
- AB两套,A内部用,B开源,把优秀的pr搞进去,甚至还可以挖人;
- 按揭开源,比如鸿蒙这种
- 一夜情项目,紧随热点,发布的时候激情四射,带完货就over了
开源项目的问题:
- 不可持续,项目作者没有持续维护的动力和能力
- 公司项目遇到负责人离职或转岗
- KPI项目
- 开源被抄
- 协议被无视
- 白嫖党、伸手党多如牦牛,社区形同虚设
如何才能维护开源者自己的利益?
- 开源协议不是保险锁
- 不一定要开源
- 拆分开源,比如Chromium
- 护城河,阶梯式发布,抄不了的能力(算法),例如React的并发模式
- 开源不免费(附加条款)
- Pro版本,根据使用者的情况分类收费
回到最初的问题,怎样的开源项目才是成功的开源项目?
- 领域知名度
- 可持续性
- 生态繁荣
如何才能成功?
- 开创性
- 开放性
- 商业价值
- 社区管理和运营推广
最后,一些开源项目的典范:
- Linux apache
2021-06-17 1744