品牌受欢迎的原因与替代品的比较
是什么力量在发挥作用,让粗糙的旧式 Make(无论是否带有 makefile 生成工具)作为构建工具脱颖而出?是替代方案的缺陷导致它们无法被广泛采用,还是宣传不足,还是 Make 的某些东西使其保持原状?
尽管 Make 在处理大型项目时存在许多弱点和困难 (例如参见http://freshmeat.net/articles/what-is-wrong- with-make)它似乎仍然比更新的、改进的替代方案(例如 Scons)使用得更广泛, Jam, Rake、Cook 等。
替代方案是否有可衡量的好处,或者“市场份额”主要取决于团队领导者的意见和经验吗?
What forces are at work keeping crufty old Make (with or without makefile generator tools) prominent as a build tool? Is it deficiencies in alternatives that keep them from being widely adopted, or insufficient publicity, or does something about Make keep it in place?
Despite Make's many weaknesses and difficulties dealing with large projects
(e.g. see http://freshmeat.net/articles/what-is-wrong-with-make) it appears to still be more widely used than newer, improved alternatives such as Scons, Jam, Rake, Cook, and others.
Are there measurable benefits to the alternatives, or are the "market shares" due mostly to opinion and experience of team leaders?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
它在大量平台上的可用性可能会有所帮助。如果为多个平台编写产品,知道它永远存在是一个优点。在构建自己的项目之前,必须将构建工具移植到新平台是一件痛苦的事情。
It's availability on a large number of platforms probably helps. If writing a product for multiple platforms, knowing it will always be there is a plus point. It's a pain to have to port your build tool to a new platform before you can build your own project.
嗯,我从未使用
make
作为构建系统。除此之外,它是一种独特的数据流编程语言,您可以在其中描述一组节点,每个节点服务于特定目的,描述它们的行为,并让管理器处理和控制它们之间的数据流。
Hm, I never used
make
as a build system.Other than that, it's a unique dataflow-programming language, where you can describe set of nodes, each serving specific purpose, describe their behavior, and let the manager handle and control the data flow between them.
我们在一个相对较大的项目中使用 scons 来替换 make,并发现它是一个相当灵活的系统,它允许我们进行一些非常必要的(但非常不幸的)黑客攻击,以使事物按照我们需要的方式构建。另外,make 也很奇怪。
We used scons on a relatively large project to replace make, and found that it was a reasonably flexible system, that allowed us to do some very necessary (but very unfortunate) hacking to get things to build the way we needed them to. Also, make is -strange-.
我认为要看到向另一种工具的重大转变,首先必须创建该工具……这要好得多。为了影响变化,Linux 发行版之一或主要软件包之一必须切换到它,并且可能保留旧版本以实现兼容性。我设想新的构建工具将能够生成旧的 makefile。 linux已经展示了他可以如何很好地用git解决源代码控制系统。我有一个很好的预感,他可以想出一些很酷的东西并与 git 结合起来。
i think what would have to occur to see a big shift to another tool, is 1st the tool would have to be created.... that is significantly better. and to affect change, either one of the linux distros or one of the major packages would have to switch to it and probably keep the old one arround for compatibility. i would envision that the new build tool would be capable of generating the legacy makefiles. linux already demonstrated how well he can solve the source code control system with git. i have a pretty good hunch he could come up with something pretty cool and tie in with git.
普遍性:我喜欢Make,因为我相信它会在我需要的地方可用,即安装或轻松安装在目标计算机上。
Ubiquity: I like Make because I can trust it will be available where I need it i.e. installed or easily installable on the target machine.
它广泛可用、文档齐全、简洁且功能强大 + 最重要的是 - 没有 XML!。
我已经使用它近 15 年了,但仍然没有找到更好的东西。我用它做过的最酷的事情是让主 makefile 即时为子项目生成 makefile。
It's widely available, well documented, concise and powerful + best of all - no XML!.
I've been using it for close to 15 years and still haven't found something better. The coolest thing I've done with it is to have a master makefile generate makefiles for sub projects on-the-fly.
关于你的问题,哪些力量在保持活力……是习惯的力量。
Regarding your question, which forces are keeping make alive ...its the force of habit.