Estou usando o CMake para gerar meus projetos IDE / makefiles, mas ainda preciso chamar "scripts" personalizados para manipular meus arquivos compilados ou até mesmo gerar código.
Em projetos anteriores, eu estava usando Python e estava tudo bem, mas agora estou tendo sérios problemas para gerenciar muitas dependências em dois projetos muito grandes em que estou trabalhando, por isso quero minimizar as dependências em todos os lugares.
Alguém me sugeriu usar C ++ para escrever meus scripts de compilação, em vez de adicionar uma dependência de linguagem apenas para isso. Os próprios temas do projeto já usam C ++, então há várias vantagens que posso ver:
- para construir o projeto inteiro, apenas um compilador C ++ e o CMake seriam necessários, nada mais (todas as outras dependências são C ou C ++);
- A segurança do tipo C ++ (ao usar o C ++ moderno) torna tudo mais fácil de ser "correto";
- é também a linguagem que conheço melhor, por isso estou mais à vontade com ela, mesmo que seja capaz de escrever um bom código Python;
- ganho potencial na velocidade de execução (mas não acho que seja realmente perceptível);
No entanto, acho que pode haver algumas desvantagens e não tenho certeza do impacto real, pois ainda não tentei:
- pode levar mais tempo para escrever o código (que disse que não tenho certeza porque sou eficiente o suficiente em C ++ para escrever algo que funcione rapidamente, então talvez para este sistema não demore muito para escrever) (o tempo de compilação não deve ser ' ser um problema para este caso);
- Devo assumir que todos os arquivos de texto que vou ler como entrada estão em UTF-8, não tenho certeza de que possam ser facilmente verificados em tempo de execução em C ++ e o idioma não o verificará;
- as bibliotecas em C ++ são mais difíceis de gerenciar do que nas linguagens de script;
Eu não tenho experiência e previsão, então talvez eu esteja perdendo vantagens e desvantagens. Portanto, a pergunta é: faz sentido usar C ++ para isso? você tem experiências a relatar e vê vantagens e desvantagens que podem ser importantes?