3 ms·
C++ is huge and growing every 3? years (C++17, 20, 23...) is it really possible to master or can you only ever get to the point of being good enough to be dange
by gigatexal 4y ago
C++ is huge and growing every 3? years (C++17, 20, 23...) is it really possible to master or can you only ever get to the point of being good enough to be dangerous?
- zabzonk 4y agoa lot of c++ is there to support library writers worried about efficiency, rather than application programmers concerned with good-enough, maintainable code if. like most people, you are in the latter category, you can write pretty good code without worrying about all the bells & whistles of the later releases.
- aninteger 4y agoYou end up mastering a subset of the language. Typically whatever you use at work or in your free time. Whether that subset is 10% or 90% is kind of up to you. There was an old joke about everyone using a different subset of C++ but like most jokes it's mostly an over exaggeration. C++ (and C) have amazing backwards compatibility and there is a strong chance that code written 30 years ago will still compile, link, and run as long as the dependencies haven't also changed too much (I'm looking at you Win32, X11, Motif). That gives you the time to migrate code bases over time without the fear of being left behind and unsupported. Even if, for some reason, you were writing C++98 for the last 30 years, it shouldn't be too difficult to make the jump to newer standards. The biggest change, in my opinion, is lambdas and move semantics, and it's not to difficult to apply those to an old code base (if you want to) and start modernizing it. Some people say C++20/23 is a new language but the fundamentals of C++ haven't changed too much and I'd say it's easier to learn C++23 coming from C++98 than it is to learn Rust coming from C++98.
- rramadass 4y ago>Some people say C++20/23 is a new language but the fundamentals of C++ haven't changed too much and I'd say it's easier to learn C++23 coming from C++98 I generally advise people wishing to learn C++ to read Bjarne Stroustup's 2nd Edition of The C++ Programming Language (TC++PL) first. All the Basic language features are there and it is manageable (i.e. C++98). Once they have an idea of this subset they can then move on to later standards eg. TC++PL 4th edition for C++11 and A Tour of C++ 3rd edition for upto C++20. This demonstrates the evolution of the language and brings home the point that there are orders of magnitude more C++98 code then C++11 and later.
- pjmlp 4y agoOther languages grow every six months.
- jeffreyrogers 4y agoYou don't have to learn it all at once and a lot of that new functionality is useful (I've used features from both C++17 and C++20 recently). I agree that learning C++ is hard though and there aren't good resources for new developers. Largely I think this is because C++ excels in domains where performance is important or where working directly with the OS/hardware is required and people working in these areas generally already have a pretty good programming background and so don't require as polished learning materials. I learned C++ by working on a big project (millions of lines of code) and being forced to figure it out as I went to be productive. I already knew C well at the time but that's not as big a help as you'd think since modern C++ is very far from C unless you are making lots of syscalls.