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)

Comments (0)

This post does not have any comments. Be the first to leave a comment below.


Post A Comment

You must be logged in before you can post a comment. Login now.

Featured Product

Model TR1 Tru-Trac

Model TR1 Tru-Trac

The Model TR1 Tru-Trac® linear measurement solution is a versatile option for tracking velocity, position, or distance over a wide variety of surfaces. An integrated encoder, measuring wheel, and spring-loaded torsion arm in one, compact unit, the Model TR1 is easy to install. The spring-loaded torsion arm offers adjustable torsion load, allowing the Model TR1 to be mounted in almost any orientation - even upside-down. The threaded shaft on the pivot axis is field reversible, providing mounting access from either side. With operating speeds up to 3000 feet per minute, a wide variety of configuration options - including multiple wheel material options - and a housing made from a durable, conductive composite material that minimizes static buildup, the Model TR1 Tru-Trac® is the ideal solution for countless applications.