小众语言的开源实践在说明什么——基础设施问题

时间:2022-12-09 10:19:05

小众语言开源实践最需要注意的就是语言的基础设施问题,包括类似Maven的代码分发机制,辅助编程的language server protocol(LSP),甚至于统一的编译器。以Scheme语言为例,当前普遍使用的代码分发机制是Akku和Snow(开源中国甚至没收录这个软件),类似LSP的实现则有Emacs Geiser等。编译器和解释器简直五花八门,GNU的guile,公认具有堪比(未经优化的)C语言速度的Chez Scheme等等。

在进行开源的时候,需要认识到如下的这些要点:

  1. 小众语言的基础设施虽然弱,但是立足于其上的经济和社会力量的积累也是弱的。这就可以解释为什么TIOBE榜单后20名的小众编程语言仍然有活跃的项目和社区。现在虽然在编程上由于缺少基础设施而困难重重,但是若要获得更大的关注度和实现更多的成就,从小众语言入手一定能够比大众语言要快。
  2. 薄弱的基础设施一经加强就会“星星之火,可以燎原”。因为过去积累的,未曾使用这种基础设施的代码可以被快速规范化和通用化,实现Java的那种write once,run everywhere。特别是程序员的自我实现要求小众语言在社区和简历上充当在市场、职场竞争中的总参谋部。大浪之下或为鱼鳖潜底,或鹰隼敖翔,谁能够快速依托基础设施利用好留存代码,谁就能够取得竞争优势。
  3. 反对力量难以作用于小众语言基础设施的发展。在大的开源社区和组织中一些人相信了那种普遍的观念,即在企业与主流语言的练手镇压下不会存在任何一丝一毫的空间。这就产生了运动上的消极作用和悲观情绪,一部分人简直要把“红旗能打多久”之类的问题提出来了。但是决不能只看表象而不看实质。反对力量的反对力量当前还不是小众语言社区,而是其他反对力量。小众语言是跑马场,小众语言的基础设施是小马驹,它的存在就证明了它的不用扬鞭自奋蹄,是争取的对象。

中国开源社区的历史已经证明了,小众语言开源实践的个人依附于国外社区不在国内搞团结,就难以建立起扩大的、有广泛基础的开源社区。中国迫切需要一个由开源社区完全自治的运动:这个运动只能是由进行开源实践的个人开始;以争取团结更多人使用开源作品并提交更多代码为运动的手段;基础设施是这个运动的根据地,它让企业对私有的代码的依赖转化为对公有的代码的依赖,把知识产权的价值留在社区而不是私人老板。这个运动是在一天天的发展的,而且是以小众语言的基础设施的进步证明了的。