分类: 开源

  • 聊两句广州开源人聚会(2023-10-21)

    聊两句广州开源人聚会(2023-10-21)

    我不记得怎么关注的 @tison,印象里好像是有人在聊开源,我看到觉得不错就关注了。他上周六号召了一场广州开源人聚会,我一看 TiDB(PingCAP)赞助了场地,路线熟悉,这个周六也没什么安排,就报名参加了。

    这场活动由 开源社TiDB 赞助。我和两家都有些交集。TiDB 自不用说;去年 Google 主办的 Code for better _ Hackathon 后,我们几个获奖选手都应邀去 开源社开源年会 做了演讲。不过说来惭愧,我对开源的贡献不多,虽然我的代码大都放在 GitHub 上面,并且使用 MIT 协议,但实际上没有推广、没有测试、也没有文档,所以真心算不上什么贡献。

    所以我去参加活动的时候也很忐忑,很怕大家一盘道,原来我是作品做少、用户最少的一个。不过很明显是过虑了:这是场蛮典型的程序员聚会,大家大多默默走进房间,默默坐下,默默拿出手机开始刷。只有几个人在高谈阔论,如此社牛很明显是主办方,果然,其中一人便主持人 @tison。

    @tison 分享了他从事开源的经历。真好呀,年轻又厉害。他的早期经历跟春哥有点像,也是大学期间从 Perl 开始。毕业后经历过大厂,但更多的还是在开源商业公司做开发,目前在 StreamNative。他参与了很多项目,现在竟然还在给 Answer 作 mentor,虽然年纪很轻,但真的非常厉害。

    我对他的发言印象最深的是:

    1. 开源项目很多都是少数几个核心骨干做很多工作,其他贡献者可能付出寥寥
    2. 创始者的风格会对开源项目带来很大影响,比如 Perl,就很像一门宗教
    3. 他接手开源项目,或者做 mentor,起手式是文档、CI、测试。我觉得这点很好,值得我学习。

    接下来,另外两位开源商业项目的从业者上台,分享他们的开源经历。这两位就比较让我感到亲切了,除去为公司工作写开源项目外,他们分享的也是给文档挑 typo 这种经历,哈哈。

    接下来聊聊开源软件的商业化。我对这种商业模式很熟悉,毕竟当年我在 OpenResty Inc. 工作过,而我们正是开源商业公司。我们的工作模式是:

    1. 维护开源软件
    2. 售卖软件服务

    开源软件可以很容易地接触到尽可能多的用户,培养他们的使用习惯,在他们的使用过程中捕获错误、改进产品。找到机会成为事实上的行业标准,然后整个行业就离不开这个软件,最典型的例子就是 Linux。

    作为软件的核心开发者,创造软件的公司自然可以享有更高的话语权;也更能说服此软件的使用者:如果你们需要进一步的服务,找我们准没错。这就相当于把传统企业用在市场上的费用,拿来支持开源软件开发,所以商业上也说得通。

    以前我只知道国外有 WordPress、Ghost、RedHat,这次见到国内的开源商业公司也都在茁壮成长,感觉很高兴。

    不过呢,这些公司(包括 TiDB)的目标领域有些过分单一:基础设施。数据库、不同种类的数据库、网关(API6),等,都是基础设施。原因我猜很简单,因为基础设施最可能拿到稳定的收入。这些软件,即使使用开源版本,都有很高的配置和使用门槛,更不要说后期维护、升级。如果是普通 2c 软件、SaaS 软件开源,可能更多的是拿去套壳做二次贩售吧……

    总之吧,我觉得,前途仍然是光明的、充满期望的,希望中国开源软件越做越好。

    感谢各位赞助商,开源社、TiDB,主办方 @tison,希望下次我能找到足够多的东西分享给大家。

  • 为什么要投资开源项目

    为什么要投资开源项目

    在群里聊起开源项目,说到现在投资者很喜欢投做开源软硬件公司,有同学问:“投资开源项目会有哪些形式获得回报呢?”我觉得一句两句说不清楚,所以写一篇博客作答。

    开源软件的优势

    先说软件。开源软件因其免费、开源的特性,越来越受到各个级别的公司、团队、开发者的欢迎。因为免费,我可以试试,好用就继续用,不好用就换一家;因为开源,如果使用过程中发现一些小问题,我可以自己修、自己适配,大大提升开发效率;同时,由于开源,用户可以更方便地对代码进行安全审计,安全性也会大大提升。

    所以,相比于传统付费商业软件,开源软件的用户量一般要大很多,而且往往成长非常快。当使用人数上升到一定级别的时候,开源软件又具备了一些新的优势。

    开源软件的用户量很大,使得开源软件的问题更容易被发现,也更容易被修复

    会有很多用户贡献使用文档,也会有很多用户在各种问答平台贡献问题解决方案,也会有很多用户写各种教程。如今是视频年代,自然视频领域也有很多用户主动贡献

    开源软件的初用成本很低,使得开源软件可以进入更多行业,获得更多使用场景,接触到更多的设备,尤其是新设备。比如,当苹果 iOS 取得成功之后,Google 立刻基于 Linux 开发了 Android 系统,然后理所当然的击败了闭源的 Symbian 和 Windows,成为移动双雄之一,并在移动互联网领域彻底接管了微软的系统软件地位。物联网方面,更是 Linux 各种发行版一枝独秀。

    开源软件的用户可能比作者更厉害,使得开源软件可以实现超越式发展。比如当年的 Backbone,它最初的成功得益于 API 设计,但是本身代码质量一般。后面有了大量用户贡献生产实例和改进代码,慢慢在代码质量上也远超一般项目。

    开源软件的版权属于全世界,很多厂商都愿意投资开源软件,因为不用担心被竞争对手用专利限制;从国家层面更是如此,开源就不怕卡脖子。《“十四五”软件和信息技术服务业发展规划》解读 中重点强调了开源生态。

    开源硬件也差不多,现在不光是开发板,机械臂什么的也都有开源项目,动手能力强者照着完全可以 DIY 出来。对于我国这样有完整工业体系的制造业大国来说非常有优势。

    投资开源产业的价值

    上面简单梳理了开源软硬件对比传统收费软件行业的优势,接下来深入分析一下投资者,包括投身开源软件的创业者能从中获得哪些特有价值。

    获得事实标准

    前面说过,开源软件发展的更快,触及行业更广。所以开源软件更容易形成事实标准。比如,现在服务器上装的,几乎都是 Linux;当年 RIA(Rich Internet Application,指功能更强大效果更出彩的网络应用)的开创者、商业软件 Flash,遭遇几乎全开源的 HTML5 挑战,如今坟头草一人多高,很多新晋前端开发者听都没听说……

    取得行业标准之后,再想让行业朝着自己喜欢的方向发展,就容易很多。比如 Chrome,如果你对比一下 MV2 阶段的 Browser Extension API,会发现,它基本就是照搬自 Chrome Extension API。结果就是,Safari、Firefox 的扩展也必须兼容 Chrome 规范;Chrome Extension MV3 推出后,其它浏览器开发厂商都要迅速跟进。

    如果你需要某个功能,而规范还不支持,那也没关系。你完全可以调整产品线的优先级,让你的需求优先被满足。

    掌握制定规范的权力

    有时候,事实标准没有那么好拿到,但是只要掌握一定程度的市场,就可以参与规范的制定。能够参与制定规范,就能提前布局产品的设计和生产,从而在后面的竞争中处于优势。相信大家都记得当年的 4G、5G 规范之争吧?

    开源不挣钱,但开源软件公司可以挣钱

    开源并不是做慈善,做开源软件的公司当然可以赚钱。事实上,目前成功案例很多。比如红帽,比如 Automatic(WordPress 就是他们家的产品,本博客就是用 WordPress 搭的),还有 MySQL、PingCap、F5 等等,不胜枚举。

    这些公司的商业模式大约是:

    • 打造一款开源软件,利用开源软件的优势赢下市场
    • 提供基于自家开源软件的服务,比如技术支持、定制开发、咨询培训等等
    • 除了开源免费的社区版,还有给付费用户的高级定制版,一般来说功能更丰富、性能更好

    所以投资开源软硬件企业,完全不用担心投资回报。

    不惧巨头垄断,突破行业壁垒

    开源软件挑战巨头取得胜利的例子更是举不胜举。跟众多“如果 BAT 要做,你怎么办?”的行业比起来,开源软硬件天然不怕专利限制,也不担心巨头在同领域竞争。开源软件即使失败,也是因为自身质量不好,或者瞄准的领域营养不足,或者败于其它开源项目。

    国家政策扶持

    前面说了,作为 IT 行业的后来者,我们国家要想追上行业壁垒森严的先行者,开源是我们的第一选择。所以未来很长一段时间,开源都会是国家关注且支持的领域。

    总结

    时代不同了,以前看起来只能用爱发电的开源软硬件也可以一边造福全人类一边造福自己家;开源从业者也可以不靠捐款过活。当然开源也有不少问题,限于篇幅,我就不在本文里讨论了。

    上面都是我从一个行业爱好者的角度,做的民科式总结。纰漏错误都有可能,欢迎指出、讨论。