| The problem I've run into (YMMV) with C++ is that a lot of documentation/information is outdated (dangerously so). C++ isn't a single language, it is three major revisions (98, 11, and 17) of a similar-ish language. If someone used C++ continuously throughout its evolution this is a non-problem. Because they were able to slowly adapt their knowledge, while still having the ability to mix and contextualize. For new people entering the language "just use C++17" is largely a fiction. Because the first time you look at stackoverflow, a tutorial, or GitHub code all bets are off. And a lot of developers end up in interop hell because they're trying to get to C++98/11 structures to work with C++17 ideas. I don't actually agree that C#/Java gives an advantage to C++17. In fact I think the reverse. The syntax is similar, but syntax is relatively minor in the grand scheme. Rust, once you get past syntax, is much more similar to high level language because you aren't wandering through the memory management minefield. Just my 2c. PS - I don't "hate" C++. But you cannot just jump straight to C++17 while pretending C++ 98/11 don't exist. You have to learn all three, and then learn not to use the first two, otherwise you wouldn't understand most of the information available to you (and most libraries you're interopping with are writing in a dialect you don't understand). Learning C++ for real is a huge under-taking. |