yep,我认为构建系统,特别是大型项目的构建系统,本身就是一个复杂的交互程序,而非依赖推导器。make不具备系统编程能力,而且完全不感知副作用。shell可以提供部分的系统编程能力,但是不具备复杂数据结构的表达能力。与其再去外挂cmake,ninja之类的一大堆构建脚本生成器,或者基于json/python配置的项目框架,还不如统统扔掉,直接把项目的构建系统作为一个需要去编程设计的部分。虽然c默认不是lazy evaluation,这不代表hack in compile time不能做。
yep,我认为构建系统,特别是大型项目的构建系统,本身就是一个复杂的交互程序,而非依赖推导器。make不具备系统编程能力,而且完全不感知副作用。shell可以提供部分的系统编程能力,但是不具备复杂数据结构的表达能力。与其再去外挂cmake,ninja之类的一大堆构建脚本生成器,或者基于json/python配置的项目框架,还不如统统扔掉,直接把项目的构建系统作为一个需要去编程设计的部分。虽然c默认不是lazy evaluation,这不代表hack in compile time不能做。