John Carmack On Modern C++

Winter break homework from John Carmack. Gamasutra reprint article "In-depth: Functional programming in C++":

A large fraction of the flaws in software development are due to programmers not fully understanding all the possible states their code may execute in. In a multithreaded environment, the lack of understanding and the resulting problems are greatly amplified, almost to the point of panic if you are paying attention. Programming in a functional style makes the state presented to your code explicit, which makes it much easier to reason about, and, in a completely pure system, makes thread race conditions impossible... (full article)

Also "Lessons to learn from Oculus development team when using the “Modern C++” approach":

Modern C++ doesn’t imply necessarly the overuse of templates

Andrei Alexandrescu says about the Modern C++ design:

"Modern C++ Design defines and systematically uses generic components - highly flexible design artifacts that are mixable and matchable to obtain rich behaviors with a small, orthogonal body of code."

Modern C++ has a close relation with generic programming; probably it’s the reason that makes many developers neglect the modern C++ approach. They think that the code will be mostly implemented as templates, which makes the code difficult to read and maintain.

In the SDK, the templates represent only 20% of all types defined and most of them are related to the technical layer... (full article)

Featured Product

3MP HDR IP69K Camera for Robotics & Autonomous Vehicles

3MP HDR IP69K Camera for Robotics & Autonomous Vehicles

STURDeCAM31 from e-con Systems® is designed to make robotics and autonomous vehicles safer and more reliable. Powered by the Sony® ISX031 sensor and featuring GMSL2 interface, this compact 3MP camera delivers 120dB HDR + LFM imaging with zero motion blur — even in the most challenging outdoor conditions. Engineered to automotive-grade standards, STURDeCAM31 is IP69K certified, making it resistant to dust, water, vibration, and extreme temperatures. With support for up to 8 synchronized cameras, it enables powerful surround-view and bird's eye systems on NVIDIA® Jetson AGX Orin™.