制作人气与替代品的原因

时间:2010-01-13 20:09:08

标签: makefile scons build-tools

什么样的力量在起作用保持狡猾的旧Make(有或没有makefile生成器工具)作为构建工具突出?是否存在替代方案的缺陷,使其无法被广泛采用,或者宣传不足,或者做些什么来使其保持原状?

尽管Make在处理大型项目时存在许多缺点和困难 (例如,请参阅http://freshmeat.net/articles/what-is-wrong-with-make)它似乎仍然比新的,改进的替代方案(例如SconsJamRakeCook和其他更广泛使用。

替代方案是否有可衡量的收益,或者“市场份额”是否主要归功于团队领导者的意见和经验?

8 个答案:

答案 0 :(得分:9)

Ubiquity :我喜欢 Make ,因为我相信它可以在我需要的地方使用,即在目标机器上安装或轻松安装。

答案 1 :(得分:7)

它广泛可用,文档齐全,简洁有力+最重要的是 - 没有XML!

我已经使用它近15年了,但仍然没有找到更好的东西。我用它做的最酷的事情是让一个主makefile动态地为子项目生成makefile。

答案 2 :(得分:5)

关于你的问题,哪些力量让生命变得活着......它是习惯的力量。

答案 3 :(得分:4)

  • 简单 - 易于做简单的事情
  • ubiquity - 您的系统上有一些版本
  • 速度 - 对大多数事情来说足够快
  • 富有表现力 - 非常适合这份工作
  • 非显而易见的复杂性 - 主要是大型项目暴露问题

答案 4 :(得分:1)

它在大量平台上的可用性可能有所帮助。如果为多个平台编写产品,了解它总是有一个加分点。在构建自己的项目之前,必须将构建工具移植到新平台是一件痛苦的事。

答案 5 :(得分:1)

我们在一个相对较大的项目中使用scons来取代make,并发现它是一个相当灵活的系统,它允许我们做一些非常必要(但非常不幸)的黑客攻击来获取构建我们需要它们的方式。另外,make是-strange - 。

答案 6 :(得分:0)

嗯,我从未使用make作为构建系统。

除此之外,它是一种唯一的数据流编程语言,您可以在其中描述节点集,每个节点服务于特定目的,描述其行为,并让管理器处理和控制数据流之间的数据流它们。

答案 7 :(得分:0)

我认为看到向另一个工具转移的必要条件是,第一个工具必须创建......这要好得多。并且为了影响变化,Linux发行版或其中一个主要软件包中的任何一个都必须切换到它并且可能保持旧版本的兼容性。我会设想新的构建工具能够生成遗留的makefile。 linux已经证明了他能用git解决源代码控制系统的能力。我有一个非常好的预感,他可以想出一些非常酷的东西,并与git配合。