C++ is the undefined language 2020.06.17

C++ is standardized by the international standards body ISO, so one might expect it to be similar across different operating systems. Ironically, it is the only popular programming language that doesn't provide a consistent cross platform experience.

Some examples of incompatability

How did we get there

The original sin - compatibility for your soul

C++ owes its success to being a superset of C, which made the transition easy for users of the popular systems language of the time.

There are many choices to make when designing a language, and the choices should work together if we want to reach a cohesive and sensible design. By inheriting all of C's choices, C++ handicapped its ability of doing this.

C++ has went so far that even its own name is a reference to a C++ anti-pattern.

Embrace, extend, and extinguish

Microsoft of the 1990s and early 2000s famously used the EEE strategy in the browser wars.

They have clearly also used it in the PL/OS wars:

Complicated standards are bug prone

We all know that programming is difficult. And standartisation is a form of programming. Relatively simple standards like the shapes and sizes of screws can be implemented successfully, but implementing a complicated standard like C++ without errors is unfeasable.

What's next

C++ is currently the king in some industries (games, audio) because no other popular language addresses their needs. Sadly, I don't see this changing in the near future.

Perhaps one day Rust, Pony, D, Zig, Jai, or something that I haven't heard about will overtake C++'s throne. Let's hope, anything but this!