32 ms·
That stops working once you're no longer a solo developer, but part of a team, then you need to learn everything any of your fellow developers might use. You mi
by Rizz 7y ago
That stops working once you're no longer a solo developer, but part of a team, then you need to learn everything any of your fellow developers might use. You might as well focus on learning a new language and having access to new jobs where you don't have to deal with legacy languages.
- rumanator 7y ago> That stops working once you're no longer a solo developer It doesn't. If you have any experience working on C++ projects you will be very aware that deciding which feature is and is not used is the kind of stuff which is defined in the project's coding guidelines docs, along with naming conventions and choice of build system. With C++ you only have to use a feature introduced after C++11 if you decide you really want to use it. Some projects even in this very day still don't use smart pointers or exceptionsor std::array. Some people still do the old C with classes thing. Moreover, the world does not come to an end if you arrive at a project and need to learn a feature provided by a programming language.
- cowsandmilk 7y ago> If you have any experience working on C++ projects you will be very aware that deciding which feature is and is not used is the kind of stuff which is defined in the project's coding guidelines And you will find that you have to learn these features once they are allowed in the guidelines. Some workplaces stick to the old features. Some regularly update with pushes toward use of modern features. When your coding guidelines prefer modern C++, you have to learn it.
- tcbawo 7y agoThe sentiment of dreading having to learn new language features (as in being forced to) does not compute to me. Being a software developer, you should always be learning new things.
- armitron 7y agoThe complexity that emerges out of C++ with most/all of its features is immense to the point where it's clearly not worth the investment when there are so many alternatives out there. Nobody should be expected to deal with a language so complex that it takes a decade or more of effort before one can say with confidence he truly understands it. Which is why C++ is dying and those other alternatives are finding so much appeal with new generations of programmers.
- simias 7y agoThat's a very optimistic way of looking at things. More than a decade ago (pre-C++11) I used to be a pretty proficient C++ developer. I had a bunch of books about C++ designs, I would use Boost left and right, I knew my design patters, I knew advanced templating tricks etc... Then I kind of grew frustrated by the complexity and super long build times and for a few years I left C++ on the side, going back to C and other languages. Now I'm a big fan of Rust. These days when I see a modern C++ codebase using "auto" all over the place, lambdas, the new constructor/initializer syntax, std::move and more, it can be very tricky for me to understand what some code is doing. I feel like I'm reading a new C-based language where I can understand most of it but I feel like some key components are eluding me. Generally I end up figuring it out but I really don't feel comfortable modifying the code because I don't understand all the implications. Very few languages, especially as old and huge as C++, change so drastically and so fast. And again, I considered myself an advanced C++ user not so long ago. >With C++ you only have to use a feature introduced after C++11 if you decide you really want to use it. If you're the original developer who makes the decisions. If you end up working on a project using a different subset than the one you're used to then you're screwed. That's what the parent is talking about.
- jcelerier 7y ago> Now I'm a big fan of Rust. > These days when I see a modern C++ codebase using "auto" all over the place, lambdas, the new constructor/initializer syntax, std::move and more, it can be very tricky for me to understand what some code is doing. But what if you had spent 1/10th of the time you spent learning Rust looking at these features (frankly looking at the wikipedia pages for each revision is enough most of the time I think : https://en.wikipedia.org/wiki/C%2B%2B11 https://en.wikipedia.org/wiki/C%2B%2B11 https://en.wikipedia.org/wiki/C%2B%2B14 https://en.wikipedia.org/wiki/C%2B%2B14 https://en.wikipedia.org/wiki/C%2B%2B17 https://en.wikipedia.org/wiki/C%2B%2B17 https://en.wikipedia.org/wiki/C%2B%2B20 https://en.wikipedia.org/wiki/C%2B%2B20 )
- imron 7y ago> But what if you had spent 1/10th of the time you spent learning Rust looking at these features You can write object-oriented code in C too (e.g. gtk, glib etc). It just involves much more boilerplate, and it doesn't offer the same amount of built-in safety guarantees. So I know enough Modern C++ to use it, but why would I when there are far better alternatives?
- 72deluxe 7y agoTrue to some extent but education is good and knowing the language you are using can only be a good thing. The same could be said of English. Would you switch to another language because someone uses a word you have never used before?
- vips7L 7y agoLet's not pretend there are jobs in Rust or whatever you think replaces C++.