Makefile 有很多值得喜欢的地方,但也有很多麻烦。
在做各种项目的过程中(我是一名研究科学家、“数据科学家”或其他),我经常发现自己从磁盘上的一些数据对象开始,从中生成各种工件,从这些工件生成工件,并且很快。
如果我可以说“这个对象依赖于这些其他对象”,“这个对象是从这些对象以下列方式创建的”,然后请求一个 Make-like 框架来处理实际构建它们的细节,那就太好了,找出需要更新的对象,将工作分配给多个处理器(如 Make 的-j
选项),等等。Makefiles 可以做到这一切——但最大的问题是所有的动作都必须写成 shell 命令。如果我在 R 或 Perl 或其他类似环境中工作,这并不方便。此外,Make 中的一个强有力的假设是所有目标都是文件 - 有一些例外和解决方法,但如果我的目标是数据库中的行,那将是非常痛苦的。
需要明确的是,我不是在追求软件构建系统。我对(更普遍地?)处理依赖项网络的东西感兴趣。
有人知道这些依赖网络的框架吗?似乎它可能是一个很好的数据科学工具,并直观地显示结果是如何产生的,等等。
我最近看到的一个非常有趣的例子是IncPy,但它看起来已经有一段时间没有被触及了,而且它与 Python 非常紧密地结合在一起。它可能也比我希望的要雄心勃勃,这就是为什么它必须与 Python 如此紧密地结合在一起。
抱歉这个模糊的问题,让我知道是否有一些澄清会有所帮助。