Re:Why You Have to Learn Modern C++
by DanAndersen on Saturday August 15, 2015 @08:59AM
(#10065260)
This post adequately explains why learning modern C++ is useful, but -- speaking as someone whose C++ experience looks more like hacking together C-style code with objects -- what are the best resources to actually learn modern C++?
Re:Why You Have to Learn Modern C++
by SamReidHughes on Saturday August 15, 2015 @02:59PM
(#10066404)
If you're an experienced C++03 programmer, the features of C++11 make perfect sense and are intuitive to use, except for some details around how the heck rvalue references work and the reference collapsing rules (and what exactly std::move and std::forward do and how to use them). (But why you want rvalue references and move semantics should be quite clear.) I think, for such users, the Wikipedia article on C++11 is the place to go, and then look at what C++14 adds.
For some C programmer that doesn't "get" C++, I'd have recommended the book Accelerated C++, written before C++11 came to be. Now I'm not so sure that's the best recommendation, but it's still a good one. On the other hand, one could say, hey, the real meat of knowing how to use C++ is just learning how to be safe in the presence of exceptions. After that, it's just a matter of restricting yourself to stuff you understand (and knowing not to use iostream :-).
(Sorry, I think this is a somewhat mediocre answer.)
Re:Why You Have to Learn Modern C++
by zde on Saturday August 15, 2015 @01:42PM
(#10066099)
> But here is a set of language and library features that will definitely make you more productive, and that you must learn to remain a relevant C++ developer
Yeah, that poor things keeps improving. But ditching it is still the most productive option available.
Re:Why You Have to Learn Modern C++
by codingbinary on Saturday August 15, 2015 @06:03PM
(#10067112)
That statement isn't constructive either and also tends towards zero signal. Even if "du-jour" languages don't end up being used in production, some of them add really nice new concepts/ideas. Take for example Rust and its compile time borrow/ownership checking.
Judging by your argument, we all should've sticked with C and wouldn't even need C++.
Taking a look beyond the current horizon sometimes ends up being useful.
Re:Why You Have to Learn Modern C++
by EliRivers on Sunday August 16, 2015 @08:18AM
(#10068710)
Judging by your argument, we all should've sticked with C and wouldn't even need C++.
Perhaps I was unclear.
My argument is that you should use the right tool for the situation, given all the context of that situation.
Simply stating that language X simply shouldn't be used anymore is an utter nonsense. We absolutely should not have stuck with C. That's crazy, and you know that's not what I was suggesting; please drop that passive-aggressive nonsense. We're not children and we don't need it.
New languages (barring toy languages that are written for the fun of it, such as Ook!) arrive to meet particular needs that particular people have in particular situations, be that to explore something in programming or for actual application. That's a lot of specific context. To take a new language and declare that because this new language exists an existing one should now be simply dropped is to ignore all the context and, as a bonus, reveal oneself to be very inexperienced or to hold a very narrow view of programming. If such people are lucky, someone will contend their point. If they're unlucky, the people around them will simply say nothing.
Re:Why You Have to Learn Modern C++
by gct on Saturday August 15, 2015 @03:13PM
(#10066441)
I kind of hate when people say "modern C++", because it doesn't mean anything. Are we talking about C++11? Automatic memory management features, lambdas, what?
For some C programmer that doesn't "get" C++, I'd have recommended the book Accelerated C++, written before C++11 came to be. Now I'm not so sure that's the best recommendation, but it's still a good one. On the other hand, one could say, hey, the real meat of knowing how to use C++ is just learning how to be safe in the presence of exceptions. After that, it's just a matter of restricting yourself to stuff you understand (and knowing not to use iostream :-).
(Sorry, I think this is a somewhat mediocre answer.)
Yeah, that poor things keeps improving. But ditching it is still the most productive option available.
Heard it last year. And the year before that. And the year before that. And the year before and before and before and before.
Trite statements like this are meaningless nonsense carrying so much hidden context that they're effectively all noise and zero signal.
Judging by your argument, we all should've sticked with C and wouldn't even need C++.
Taking a look beyond the current horizon sometimes ends up being useful.
Perhaps I was unclear.
My argument is that you should use the right tool for the situation, given all the context of that situation.
Simply stating that language X simply shouldn't be used anymore is an utter nonsense. We absolutely should not have stuck with C. That's crazy, and you know that's not what I was suggesting; please drop that passive-aggressive nonsense. We're not children and we don't need it.
New languages (barring toy languages that are written for the fun of it, such as Ook!) arrive to meet particular needs that particular people have in particular situations, be that to explore something in programming or for actual application. That's a lot of specific context. To take a new language and declare that because this new language exists an existing one should now be simply dropped is to ignore all the context and, as a bonus, reveal oneself to be very inexperienced or to hold a very narrow view of programming. If such people are lucky, someone will contend their point. If they're unlucky, the people around them will simply say nothing.