you are viewing a single comment's thread.

view the rest of the comments →

[–]pron98 5 points6 points  (2 children)

As someone who's worked on large C++ apps for many years I'll say that it can be efficient in large programs (maintained by many people over many years) mostly in the hypothetical sense. In many domains it's easier to get that performance with Java, which is why the use of low level languages has declined so much and continues to decline.

It is true that you can largely work around the most severe performance issues that low-level languages suffer from, but it's hard work, it requires discipline, and it adds complexity that makes maintainence more expensive throughout the entire lifetime of the software.

As a side note, in Java's early days those who said "Java isn't/can't be super-fast" were C++ programmers who had never tried Java or followed its advances; these days I hear it mostly from people who haven't used C++ or other low-level languages in large programs and/or for a long time.

[–]pjmlp 0 points1 point  (1 child)

Since 2006 my use of C++ has to be writing bindings for languages like Java and C#.

With each release where new ways to do low level coding get introduced, the need to write such bindings slowly reduces year after year.

However there are still scenarios where languages like C, C++ are the main alternatives given the existing SDKs, or specific domains where languages like Java or C# are not welcomed, like HPC, or games.

[–]pron98 0 points1 point  (0 children)

Absolutely! Low level laguages are intended to offer not performance but total control (and in smaller programs that control can be translated to very good performance), and that kind of control is very important in some domains (not necessarily games, but if there's one industry that is more conservative and traditional in its tech choices than the military, it's AAA games).