Причина выбора популярности и альтернатив

Какие силы работают, сохраняя жестокий старый Make (с или без инструментов генератора файлов), известный как инструмент построения? Являются ли недостатки в альтернативах, которые не позволяют им широко распространяться или недостаточно рекламируются, или что-то делать, чтобы сохранить его на месте?

Несмотря на многочисленные недостатки и трудности, связанные с крупными проектами (например, см. http://freshmeat.net/articles/what-is-wrong-with-make), по-видимому, все еще более широко используется, чем более новые, улучшенные альтернативы, такие как Scons, Jam, Rake, Cook и другие.

Существуют ли ощутимые выгоды для альтернатив или "доля рынка" в основном зависит от мнения и опыта руководителей команд?

Ответ 1

  • простота - легко сделать простые вещи
  • ubiquity - некоторая версия находится в вашей системе
  • скорость - достаточно быстрая для большинства вещей
  • выразительный - довольно хорошее соответствие с работой
  • неочевидная сложность - в основном крупные проекты выставляют проблемы

Ответ 2

Ubiquity: мне нравится Make, потому что я могу доверять, что он будет доступен там, где он мне нужен, то есть установлен или легко устанавливается на целевой машине.

Ответ 3

Широко доступный, хорошо документированный, сжатый и мощный + лучший из всех - без XML!.

Я использую его около 15 лет и до сих пор не нашел лучшего. Самое крутое, что я сделал с ним, - это сделать мастер файл makefile для создания подфайлов на лету.

Ответ 4

Относительно вашего вопроса, силы которого оживают... его сила привычки.

Ответ 5

Возможно, это помогает доступность на большом количестве платформ. Если вы пишете продукт для нескольких платформ, зная, что это всегда будет точка плюса. Это боль, связанная с переносом вашего инструмента построения на новую платформу, прежде чем вы сможете создать свой собственный проект.

Ответ 6

Мы использовали scons в относительно большом проекте для замены make и обнаружили, что это была достаточно гибкая система, которая позволила нам сделать очень необходимый (но очень неудачный) взлом, чтобы заставить вещи строить то, как мы нуждались в них, Кроме того, make -strange -.

Ответ 7

Hm, я никогда не использовал make как систему сборки.

Кроме этого, это уникальный язык программирования потока данных, где вы можете описать множество узлов, каждая из которых служит для конкретной цели, описать их поведение и позволить менеджеру обрабатывать и контролировать поток данных между ними.

Ответ 8

Я думаю, что должно было произойти, чтобы увидеть большой переход к другому инструменту, - это первый инструмент, который нужно будет создать... это значительно лучше. и чтобы повлиять на изменение, либо один из дистрибутивов linux, либо один из основных пакетов должен был бы переключиться на него и, вероятно, сохранить старый arround для совместимости. я предвидел бы, что новый инструмент построения будет способен генерировать устаревшие make файлы. Linux уже продемонстрировал, насколько хорошо он может решить систему управления исходным кодом с помощью git. у меня есть довольно хорошая догадка, что он может придумать что-нибудь довольно крутое и связать с git.