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

Strain Wave Gearheads by maxon - Highly precise, compact, and efficient.

Strain Wave Gearheads by maxon - Highly precise, compact, and efficient.

Strain wave gearheads are ideal for use in applications requiring precision motion control and high torque transmission in a compact design. maxon strain wave gearheads are a specialized type of gearhead where precision and compact design are crucial. This type of gearhead is often used in applications in a confined space. With their advanced gear tooth design, maxon's strain wave gearheads provide high efficiency and good back drivability. Typical applications include: Robotics, Aerospace, Medical technology and Optical systems .