C++ с самого начала был языком программирования №1 для ЛЕДАСа. Его основным преимуществом является высокая производительность, что очень важно для наших проектов, поскольку мы сфокусированы на создании высокоэффективного кода для конечного пользователя, а сложные геометрические алгоритмы требуют высокой скорости вычислений.
Мы по-прежнему считаем C++ идеальным выбором для многих новых проектов, связанных с CAD/CAM и другими инженерными приложениями. Это связано не только с его высокой производительностью, но и с тем, что большинство библиотек для 2D- и 3D-геометрии, как коммерческих, так и с открытым исходным кодом, написаны именно на C++. Эти библиотеки отлажены постоянным использованием в промышленном ПО на протяжении многих лет или десятилетий, что является одним из важнейших преимуществ при выборе языка для разработки инженерного софта.
В нашей команде более 50 разработчиков пишут код на C++ – больше, чем на других языках программирования.
Мы растем вместе с C++: от new()/delete() к smart pointers, от громоздких конструкций олдскульного C++ к более компактному и удобному коду. Если вначале мы в основном создавали небольшие и быстрые алгоритмические процедуры для вычислительных библиотек, то сегодня мы также разрабатываем структурированный многофункциональный индустриальный код, включая корпоративное инженерное программное обеспечение для конечных пользователей.
Мы предпочитаем использовать новые стандарты C++, такие как C++14, C++17 и C++20, поскольку они предоставляют новые удобные функции, но выбор стандарта определяется не только нашими предпочтениями. Во многих случаях, особенно при разработке движков, библиотек и платформ, необходимо компилировать код для старых ОС и старых версий компиляторов, поэтому мы разрабатываем код практически для любых типов компиляторов и любых стандартов. Кроме того, в тех случаях, когда необходима глубокая интеграция с программным обеспечением заказчика, выбор стандарта для нового проекта диктуется историей разработки и существующим исходным кодом.
Современный подход к разработке программного обеспечения требует обязательного использования библиотек и фреймворков. К ним относятся библиотеки C++ общего назначения, такие как STL или Boost, геометрические ядра САПР — Parasolid, ACIS, C3D, Open Design Alliance, OpenCASCADE, специализированные библиотеки для вычислений — CGAL, VTK, Eigen и многие другие. Использование фреймворков и библиотек экономит время разработки, но может привести к меньшей степени контроля над кодом, поэтому выбор между разработкой кода собственными силами и использованием существующих библиотек является очень важным и не всегда очевидным решением.
Но когда речь идет о библиотеках геометрического моделирования, также известных как 3D-ядра, которые содержат большое количество критически важных функций 3D-моделирования, большинство команд разработчиков делают безоговорочный выбор в пользу существующих 3D-ядер.
Мы любим C++, и нам есть что рассказать о нашем опыте использования этого языка программирования. Несколько статей на эту тему опубликовано в нашем блоге:
Есть вопросы? Связаться