community

CppCon 2018: OOP Is Dead, Long Live Data-oriented Design--Stoyan Nikolov

We’re in the final countdown to this year’s CppCon, which starts on September 16. To whet your appetite for this year’s conference, here’s another of the top-rated talks from last year. Enjoy – and register today for CppCon 2019!

OOP Is Dead, Long Live Data-oriented Design

by Stoyan Nikolov

Summary of the talk:

For decades C++ developers have built software around OOP concepts that ultimately failed us - we didn’t see the promises of code reuse, maintenance or simplicity fulfilled, and performance suffers significantly. Data-oriented design can be a better paradigm in fields where C++ is most important - game development, high-performance computing, and real-time systems.

The talk will briefly introduce data-oriented design and focus on practical real-world examples of applying DoD where previously OOP constructs were widely employed.

Examples will be shown from modern web browsers. They are overwhelmingly written in C++ with OOP - that’s why most of them are slow memory hogs. In the talk I’ll draw parallels between the design of systems in Chrome and their counterparts in the HTML renderer Hummingbird. As we’ll see, Hummingbird is multiple times faster because it ditches OOP for good in all performance-critical areas.

We will see how real-world C++ OOP systems can be re-designed in a C++ data-oriented way for better performance, scalability, maintainability and testability.

Overload 152 is now available

ACCU’s Overload journal of August 2019 is out. It contains the following C++ related articles.

Overload 152 is now available

From the journal:

Reactive or Proactive.
Reactive systems are all the rage. Frances Buontempo compares them with a proactive approach.

A Low-Latency Logging Framework.
Logging can be a bottleneck in systems. Wesley Maness and Richard Reich demonstrate a low-latency logging framework that avoids common problems.

Empty Scoped Enums as Strong Aliases for Integral Types.
Scoped enums have many advantages. Lukas Böger demonstrates their use as strong types of numbers.

C++ Reflection for Python Binding.
There are various approaches to generating Python bindings in C++. Russell Standish shows how Classdesc can be used to achieve this.

Trip Report: Italian C++ 2019.
Milan held Italy’s largest C++ conference. Hans Vredeveld reports back.

Afterwood.
Many people are risk-averse. Chris Oldwood considers this position – in verse.