From the very beginning C++ was the #1 programming language for LEDAS. Its top native performance is highly important for our projects as we are very focused on providing the best experience for end users, and complicated geometric algorithms require really fast calculations.
We still consider C++ as a proper choice for many new projects related to CAD/CAM and other engineering applications. This is not only because of its top performance, but also because in the world of 2D and 3D geometry many open source and third-party libraries are written and best supported in C++, thanks to many person-years of time effort put into them now and decades ago.
In our team more than 50 developers implement their code in C++, more than in any other language.
We grow together with C++: from new() / delete() to smart pointers, from large constructions of oldschool C++ to more compact and comfortable codes. While in the beginning we mostly worked with small and fast algorithmic routines of computational libraries, now we also develop structured and rich industrial code bases, including end-user enterprise engineering software.
We prefer to use new C++ standards like C++14, C++17 and C++20, as they provide new handy features, but the choice of standard is not only on our side. In many cases, especially when developing engines, libraries and platforms, the choice is affected by necessity to compile code for older OSes and older compiler versions, so we develop code for virtually any types of compilers and any standards. Also, in case of deep integration with existing software of a customer, the history of development and choices already done with existing source code may shape the new development.
In contemporary software development usage of libraries and frameworks is a must. These include general purpose C++ libraries like STL or boost, specialized CAD kernels and engines like Parasolid, ACIS, C3D, Open Design Alliance, OpenCASCADE, dedicated libraries for computations like CGAL, VTK, Eigen, and many others. Usage of frameworks and libraries saves development time, but may result in lesser degree of control of code, so the choice between development of building blocks of code in-house or using existing libraries is a very important and not-so-obvious decision in a real project.
Of course, when we talk about geometric modeling libraries, also known as 3D kernels, which contain huge amounts of critically important 3D modeling functions, most development teams will rightfully choose to use existing 3D kernels.
We are very fond of C++, and we have a lot to say about our experience of using this programming language. You can find some articles about it on our blog:
Have any questions? Get In Touch