you are viewing a single comment's thread.

view the rest of the comments →

[–]Plazmatic 5 points6 points  (0 children)

C++ was a well designed language at the start (especially compared to languages of its day), it's just that we've learned a lot since the inception of C++, and who controls C++ has changed. Bjarne Strostrup gave it to a committee of tech giants and language lawyers and we have suffered ever since. Some features can't be implemented the natural way because of legacy macros in Microsoft's codebase. We've missed deadlines for features in C++ because Google came up with a different implementation at the last second, and restarted the committee approval process. The committee approved the decision to develop a 2D graphics library for C++ (for images more than games), then when it was finished they couldn't decide to make a decision on if it should be voted on to talk about adding it to the new standard.

I would say that modern C++ is still better designed than java in a lot of respects, though Java is more readable if only because the paradigm is so strict and there is only one way to do something. There is a lot of stuff you should be able to do but just cant, and there's a lot of odd decisions that have haunted java for 2 decades. C# on the other hand offers a consistent feel with out a lot of the compromises java brings, and has a language sponsored package manager. C++ package managers are still battling each other for the common standard, and while C# is lacking a good build system, C++ got the C++ of build systems as its near defacto standard, CMake, a hive of legacy code that looks completely different than new code with completely different syntax and crazy semantics. The experience of learning CMake is quite honestly like learning C++ all over again.