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

Motion Controls Robotics, Inc. - The Random Robotic Case Erector System

Motion Controls Robotics, Inc. - The Random Robotic Case Erector System

Random Case Erectors are ideal for fulfillment centers and other end-of-line packaging needs. Save money by eliminating changeover downtime. Reduce ergonomic injuries by eliminating repetitive manual tasks. The Random Robotic Case Erector System includes: • FANUC M20iA/20 Robot • Combi gravity case magazine - holds 2 box sizes • Combi bottom flap folder with integrated 3M case sealing head. • Fixed robot base, anchored to the floor • Flexible end of arm tool to pick and erect multiple case sizes to eliminate changeover downtime • System wiring and controls • Color 7.5" touchscreen HMI display for selecting case size • Perimeter guarding with safety interlocks on doors • Programming for Robot, PLC/PMC, HMI and Vision • Complete documentation in electronic format • On-site training and support • Compliance with all applicable robotic safety standards. Alternate safety configuration may be available to allow an operator to changeover a case size in one magazine while the robot continues to work in other magazines. Contact Motion Controls Robotics to learn more about how to implement this system into your current end-of-line operations.