Я использую CMake для генерации IDE / make-файлов своих проектов, но мне все еще нужно вызывать пользовательские «скрипты» для манипулирования скомпилированными файлами или даже для генерации кода.
В предыдущих проектах я использовал Python, и это было нормально, но теперь у меня серьезные проблемы с управлением множеством зависимостей в двух очень больших проектах, над которыми я работаю, поэтому я хочу минимизировать зависимости везде.
Кто-то предложил мне использовать C ++ для написания сценариев сборки вместо того, чтобы просто добавлять языковые зависимости. Сами проекты уже используют C ++, поэтому я вижу несколько преимуществ:
- чтобы построить весь проект, понадобился бы только компилятор C ++ и CMake, больше ничего (все остальные зависимости - C или C ++);
- Безопасность типов C ++ (при использовании современного C ++) делает все проще, чтобы «исправить»;
- это также язык, который я знаю лучше, так что мне легче с ним работать, даже если я могу написать хороший код на Python;
- потенциальный выигрыш в скорости выполнения (но я не думаю, что это будет ощутимо);
Тем не менее, я думаю, что могут быть некоторые недостатки, и я не уверен в реальном воздействии, поскольку я еще не пробовал:
- возможно, потребуется больше времени для написания кода (это говорит о том, что я не уверен, потому что я достаточно эффективен в C ++, чтобы написать что-то, что работает быстро, поэтому, возможно, для этой системы это не будет так долго писать) (время компиляции не должно ' это не проблема в этом случае);
- Я должен предположить, что все текстовые файлы, которые я буду читать как входные данные, находятся в UTF-8, я не уверен, что его можно легко проверить во время выполнения в C ++, и язык не проверит его для вас;
- библиотеки на C ++ сложнее в управлении, чем на языках сценариев;
Мне не хватает опыта и дальновидности, поэтому, может быть, мне не хватает преимуществ и недостатков. Итак, вопрос: имеет ли смысл использовать C ++ для этого? у вас есть опыт, чтобы сообщить, и вы видите преимущества и недостатки, которые могут быть важными?