前几天听了一期捕蛇者说的节目,邀请的嘉宾是Python core developer,聊的主题是开源。
节目讲了目前的Python开源社区是怎么贡献代码,出乎意料,其实Python没有严格意义上的全职开发者,嘉宾也是华为公司的员工,利用的是业余时间贡献代码,欧美的开发者稍微好点,公司会划出一些工作时间用于Python开发,但是也没有全职开发,总结下来就是靠爱发电。
因为是一个比较松散的组织,好处是没有组织或者公司会强力控制或者影响Python的发展, 但是缺点是全靠开发者的兴趣来贡献代码,一些重要问题可能长时间没有人解决。
节目中举了个例子,就是Python的内存分析,目前的问题是没有好的分析工具,包括开源和商业的,然后Python本身也没有提供良好的接口让外部对其做分析。长期下来,因为没有好的内存分析工具,限制了生产的使用,反过来由于没有大量使用案例,无法提供足够的问题让开发者来学习和解决问题,也无法提供足够的市场需求来催生商业化的解决方案。
接下来,主持人和嘉宾提到了另一种开源形式,就是商业化的开源,比如Gradle/Java。Java在早期刚推出时性能方面也是个渣渣,但是得益Sun(后来是Oracle)的支持,现在已经非常好了。Gradle本身也是开源的,Gradle公司提供了一个Gradle Enterprise的产品赚钱,使用后,Gradle编译的内容会生成一个web页面,可以很方便看到build哪里出了问题,比看命令行输出方便多了。
在听节目之前,我一直以为开源只有一种模式,商业化的开源我认为不纯粹,是假开源。
听了节目后,我去查了一下Spring的相关资料。其实Spring也是走的商业化开源路线,Spring的背后是Pivotal公司支持的,最早期的开发者是Rod Johnson,是澳大利亚的计算机专家,大概的时间线如下:
- 2002,Rod Johnson写了Spring的第一个版本,然后创办了Spring公司,这时候Spring的员工就是Spring的开发者,全部是全职,商业模式是提供咨询,和出售Java服务开发的商业软件
- 2009,VMWare花了4.2亿收购Spring
- 2013,VMWare的母公司EMC/通用/VMWare本身,一起创立了Pivotal公司,把Spring转到Pivotal,一起转过去的还有RabbitMQ,Redis等其他开源软件
- 2018,Pivotal上市,IPO融资5.55亿
- 2019,VMWare跟Pivotal合并
现在去Spring的官网,https://spring.io,到页面底部,也可以看到VMWare商标。
从开发角度看,Spring一开始的时候只是一个依赖注入框架,经过了18年的演进,后面又加入了Spring MVC,并且进一步推出免xml配置的Spring Boot,这几年又推出了Spring Cloud,其中Spring MVC/Spring Boot基本上已经成为了Java生态中Web/服务开发的标准,Spring Cloud也是使用最广泛的微服务框架,从技术角度看,Spring是非常成功的。从商业角度看,Rod Johnson和其他创始人通过上市也获得了巨大的财务回报,Spring的雇员,也是Spring的贡献者,也能领到工资,或许也能通过期权小发一笔,避免了用爱发电饿肚子的窘境。
参考: