2010-01-13 9 views
10

¿Qué fuerzas están en el trabajo para mantener prominente a Old Make (con o sin herramientas generadoras de archivos) como herramienta de construcción? ¿Son las deficiencias en las alternativas las que evitan que se adopten ampliamente, o la publicidad es insuficiente, o algo acerca de Make lo mantiene en su lugar?Motivo de la popularidad del producto frente a las alternativas

A pesar de muchas debilidades y dificultades a hacer que se ocupan de grandes proyectos (por ejemplo, véase http://freshmeat.net/articles/what-is-wrong-with-make) parece ser todavía más ampliamente utilizado de nuevas alternativas, tales como la mejora de Scons, Jam, Rake, Cook, y otros.

¿Existen beneficios mensurables para las alternativas, o las "cuotas de mercado" se deben principalmente a la opinión y experiencia de los líderes de equipo?

+2

"El envío es una función". Una vez que algo se convierte en "estándar", se necesita un gran esfuerzo para cambiar a algo nuevo, incluso si ofrece algunas ventajas. Probablemente, los proyectos que ya usan 'make' * nunca * cambiarán, y hay muy pocos incentivos para que los desarrolladores en la misma casa de software utilicen dos herramientas de construcción completamente diferentes. –

+5

community wiki ...... – jldupont

+1

La fabricación normal no es utilizada por muchos proyectos grandes. Las autotools son el titular ubicuo, proporcionando portabilidad y flexibilidad. – Tobu

Respuesta

4
  • simplicidad - fácil de hacer las cosas simples
  • ubicuidad - alguna versión es en su sistema
  • velocidad - lo suficientemente rápido para la mayoría de las cosas
  • expresiva - partido bastante bueno para el trabajo
  • complejidad no obvio - principalmente grandes proyectos exponen problemas
+0

La mayoría de estas cualidades se pueden encontrar también en otras herramientas de compilación. Tal vez simplemente no todos ellos en cualquier otro? – DarenW

+1

@DarrenW - "ubiquity" no se puede encontrar en ninguna otra herramienta de compilación. –

9

ubicuidad: me gusta Hacer porque puedo confiar en que estará disponible cuando lo necesito decir instalado o fácilmente instalable en la máquina objetivo.

1

Su disponibilidad en una gran cantidad de plataformas probablemente sea útil. Si escribe un producto para múltiples plataformas, saber que siempre estará allí es un punto a favor. Es un dolor tener que adaptar su herramienta de compilación a una nueva plataforma antes de que pueda construir su propio proyecto.

5

Con respecto a su pregunta, qué fuerzas están manteniendo vivo ... es la fuerza del hábito.

+0

Sí, "hacer" es algo así como BASIC o Fortran. –

+0

Para obtener una definición de "me gusta", que no incluye ejecutarse con un comando estándar, en un formato de archivo estándar, compilar y desplegar su proyecto, en paralelo, en cualquier elemento, desde una caja Unix estándar hasta una supercomputadora moderna Computadora hogareña de la década de 1980. –

7

Está ampliamente disponible, bien documentado, conciso y potente + lo mejor de todo: ¡sin XML!.

Lo he usado por cerca de 15 años y aún no he encontrado algo mejor. Lo mejor que he hecho con él es tener un makefile maestro que genere archivos make para subproyectos sobre la marcha.

+9

+1 para "sin XML"! –

+2

¡Gracias! El aspecto XML de otras herramientas más nuevas es un problema real para mí. Después de 16 años de C/C++, he trabajado con Ruby durante 3 años y, aunque me encanta ese entorno, Rake, etc., no tiene nada que ver con la marca. En el mundo de Java, Ant parece demasiado detallado para lo que hace. –

+2

no XML, pero __tabs__ –

0

Hm, nunca he usado make como un sistema de compilación.

Aparte de eso, es un lenguaje de programación de flujo de datos- única, donde se puede describir conjunto de nodos, cada propósito específico de servir, describir su comportamiento, y dejar que el gestor de mango y controlar el flujo de datos entre ellos.

1

Usamos scons en un proyecto relativamente grande para reemplazar la marca, y descubrimos que era un sistema razonablemente flexible, que nos permitió hacer algo de hacking muy necesario (pero muy desafortunado) para que las cosas se construyeran de la manera que las necesitábamos. a. Además, make is -trange-.

+0

Sí, parece que todas las alternativas para hacer, y hacerse a sí mismo, necesitan algunas intrusiones en proyectos más grandes. Desde que hice la pregunta, comencé a trabajar en proyectos complejos usando scons que se convirtieron en cmake. Cmake es menos problemas, menos piratería, pero aún así, algunos. Y la extrañeza es una propiedad que no está ausente en ninguna herramienta de software o lenguaje, y no estoy seguro si eso es bueno (evitando el aburrimiento) o malo (confusión, errores sorprendentes). – DarenW

0

Creo que lo que tendría que ocurrir para ver un gran cambio a otra herramienta, es primero, la herramienta tendría que crearse .... eso es significativamente mejor. y para afectar el cambio, una de las distribuciones de Linux o uno de los paquetes principales tendría que cambiar a ella y probablemente mantener la anterior para compatibilidad. Me imagino que la nueva herramienta de compilación sería capaz de generar los archivos make heredados.Linux ya demostró lo bien que puede resolver el sistema de control de código fuente con git. Tengo una buena corazonada de que podría llegar a algo muy bueno y vincularse con git.

Cuestiones relacionadas