Estoy usando CMake para generar mis proyectos IDE / makefiles, pero aún necesito llamar "scripts" personalizados para manipular mis archivos compilados o incluso generar código.
En proyectos anteriores, he estado usando Python y estaba bien, pero ahora tengo serios problemas para administrar muchas dependencias en dos proyectos muy grandes en los que estoy trabajando, así que quiero minimizar las dependencias en todas partes.
Alguien me sugirió usar C ++ para escribir mis scripts de compilación en lugar de agregar una dependencia de lenguaje solo para eso. Los proyectos themeselves ya usan C ++, por lo que hay varias ventajas que puedo ver:
- para compilar todo el proyecto, solo serían necesarios un compilador de C ++ y CMake, nada más (todas las demás dependencias son C o C ++);
- La seguridad de tipo C ++ (cuando se usa C ++ moderno) hace que todo sea más fácil de "corregir";
- también es el idioma que mejor conozco, así que me siento más cómodo con él, incluso si soy capaz de escribir un buen código Python;
- ganancia potencial en la velocidad de ejecución (pero no creo que sea realmente perceptible);
Sin embargo, creo que puede haber algunos inconvenientes y no estoy seguro del impacto real ya que aún no lo he intentado:
- podría ser más largo para escribir el código (que decía que no estoy seguro porque soy lo suficientemente eficiente en C ++ para escribir algo que funcione rápidamente, por lo que tal vez para este sistema no sea tan largo escribir) (compilación el tiempo no debería ser un problema para este caso);
- Debo suponer que todos los archivos de texto que leeré como entrada están en UTF-8, no estoy seguro de que puedan verificarse fácilmente en tiempo de ejecución en C ++ y el idioma no lo verificará por usted;
- las bibliotecas en C ++ son más difíciles de administrar que en los lenguajes de scripting;
Me falta experiencia y visión, por lo que tal vez me falten ventajas e inconvenientes. Entonces la pregunta es: ¿tiene sentido usar C ++ para esto? ¿Tiene experiencias que informar y ve ventajas y desventajas que podrían ser importantes?