Ask HN: In the current climate, is it a poor decision to learn C++?
I am considering picking up C++ more seriously so that I can spend more time closer to the metal where there is more to learn which is closer to my technical inclination.
However, I worry about the job market for C++ developers who want to be rewarded for their technical ability. I know in the past few years we have seen a boom in the financial industry around high performance systems, but are we seeing the tail end of C++'s popularity? [1]
It seems like a very vague question, but given the current trend, would I be shooting myself in the foot if I jumped the Java ship and embarked on a 5 year quest to learn to ins and outs of C++?
Is C++ here to stay as the language of choice for ultra high performance? Is there sustainable demand for the benefits of C++?
[1] http://langpop.com/timeline.html
10 comments
[ 2.5 ms ] story [ 25.3 ms ] threadSystem programming still considers C/C++ the best. Heavy applications that need good performance are still built using C/C++. For example, Google Chrome, Adobe Photoshop, Games etc.
For developing "Business Applications", they need a rapid delivery system, easiness of development, better collaboration etc., and most of the business systems consider Java programming. Because Java has a good collection of libraries and frameworks, great support and documentation. It's suitable for both desktop (Eclipse IDE is developed in Java) and web applications.
Other popular business application languages include Javascript (not related to Java in any ways), Python, Ruby, Scala etc.
So, you need to consider which is your preferred area to work on.
- If you are too much interested in developing OSs, drivers, games, or high-performance applications, you can go with C++.
- If you like to develop business systems (like websites, weather APIs, BigData analysis, this HackerNews website, social networks, online-shopping, share-trading platforms etc.) you can leave C++ and learn some trendy langs like Java or Ruby.
With GoLang and Rust coming on tap for real, the next ten years will be very interesting as far as C++ goes (they really have the potential of "eating" C++ more than C in my opinion).
If you look at this site:
http://langpop.com/
And turn off everything (set to 0) except Github, it is rather interesting seeing what new code is being produced today. So while I definitely think the legacy C++ code base is massive, and that jobs will exist for some time to come (40+ years), it doesn't seem like a lot of new projects are choosing C++ (I certainly wouldn't for a new project, unless it was a game, or I needed a specific library written in C++).
Security issues are a major boat anchor around C++'s neck, and while the newer standards solve a lot of those issues, if you're going to have to almost completely re-write to that, you could equally consider Rust or GoLang when they've stabilized a little.
But, right now in 2015, C++ is fine and the jobs should exist enough for it to be worthwhile. I am more just saying "keep an eye on it."
So even with it's innovations, C++ will probably eventually fall out use over the course of your career. But spending a few years focusing on it will give you a tremendous amount of foundational knowledge and shouldn't hurt your ability of step into something else as it comes up.
If you want to do systems programming or other high performance work, it's probably your best bet, even while you keep an eye on some of the technologies that are competing for the same space.
It's never a bad idea to learn something that has shaped essentially everything that has come along since.