Estoy usando CMake para generar mis proyectos IDE / makefiles, pero todavía 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 estoy teniendo 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 ya usan C ++, por lo que hay varias ventajas que puedo ver:
- para construir todo el proyecto, solo sería necesario 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 estoy más cómodo incluso si puedo escribir un buen código de 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 intenté:
- podría ser más largo para escribir el código (dicho esto no estoy seguro porque soy lo suficientemente eficiente en C ++ para escribir algo que funcione rápidamente, así que tal vez para este sistema no sería tan largo escribir) (el tiempo de compilación no debería ' t sea 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 se pueda verificar fácilmente en tiempo de ejecución en C ++ y el lenguaje no lo comprobará por usted;
- las bibliotecas en C ++ son más difíciles de administrar que en los lenguajes de secuencias de comandos;
Me falta experiencia y visión de futuro, así que tal vez me faltan ventajas e inconvenientes. Entonces la pregunta es: ¿tiene sentido usar C ++ para esto? ¿Tiene experiencias para informar y ve ventajas y desventajas que podrían ser importantes?