最近国内开源社区出现了两件丑闻,Alist卖身和KubeSphere闭源。前者是个人掌控的社区项目,在没有通知社区成员,没有发布任何公告的前提下被创始人售卖给带有劣迹前科的公司,且该公司接收运营后便着手注入风险代码。后者是由商业公司推出的开源项目,号称“100% 开源,由社区共同打造”1也是在没有任何公告,通知,讨论的前提下关闭开源下载链接,移除文档,Docker镜像及相关二进制产物1。另外据公众号“老冯云数”表示KubeSphere虽然打着Apache 2.0的许可证,但是附加了额外条款,早就不符合OSI定义的“开源”,事实上变成“源码可用”项目而非“开源”项目。
两个开源项目因商业问题而调整开源策略,无可厚非,因为做过开源的人(尤其是普通人)都知道,从开源项目里获取收入太难了,但是开源又需要投入大量的人力甚至是财力,所以开源项目商业化绝大部分人持支持态度。可是这两个项目的商业化太不厚道,完全就是将用户当成韭菜来背弃和收割。关于上述项目行为产生的后果,网上有大量讨论,我就不在这重复啰嗦。
这两件事对我造成了一些冲击,因为不管是工作还是生活中,我都重度依赖开源项目。在GIS行业,几大基础项目,如底层的GDAL, OGR,Proj, GEO,PostGIS;数据格式GeoJSON,KML,WKT……;地图服务协议WMS,WMTS,WFS,3DTiles……;地图服务器GeoServer,MapServer;前端的Openlayers,Cesium……。哪一个不是开源,这些项目是行业繁荣的基础,没有它们一个个的小公司都该倒闭。平时我没有精力和能力去一个个研读代码,看看项目中是否留有后门或者其他的危害,一切都是通过信任来连接,正是站在它们的肩膀上才有今天的我。开源和商业一样最重要的是信任,通过信任我们才能协作分工,在自己的位置上发光发热,推动技术和社会进步。
令人欣慰的一点是,作为GIS行业基石的开源项目,背后支持大部分是非营利性基金会或者是多个商业公司组成的联盟,历经多年,可靠性高,值得信赖。相反的,背后由个人或者单独的商业公司支持的项目,存在隐性的风险,可靠性低,个人和公司可能因利益诉求左右横跳(尽管开源领域有许多令人尊敬的前辈,但是我觉得应该用机制来维护信任,而不是只依赖个人的道德水准),目前已经发生好几例前车之鉴,如Redis,MongoDB修改许可证,Fakerjs作者注入恶意代码等(尽管我很同情Fakerjs作者的遭遇)。
我们应该认识到,开源已经不是那个单纯为爱发电,分享至上的阶段,现阶段混入了形形色色的人,各种各样的诉求。仍对开源抱有不切实际的幻想的人,推荐阅读卫Sir(《大教堂与集市》中文版作者)的这几篇文章对开源祛祛魅: