

Ask HN: In the current climate, is it a poor decision to learn C++? - MarcusP

I studied Computer Science, have always been a Java developer and I am still young, living in London.<p>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.<p>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++&#x27;s popularity? [1]<p>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++?<p>Is C++ here to stay as the language of choice for ultra high performance? Is there sustainable demand for the benefits of C++?<p>[1] http:&#x2F;&#x2F;langpop.com&#x2F;timeline.html
======
vishnuharidas
Two main areas: System Application / Native Application Programming AND
"Business Application" programming.

System 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.

------
tannk11001
We're finally starting to see some exciting substitutes for C++ in general
systems programming, and increasingly many embedded devices are able to
support runtimes that are more tolerant of faults and inefficiencies.

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.

------
veeti
Step out of the HN echo chamber. C++ isn't going anywhere.

~~~
Someone1234
C hasn't decreased in popularity, but there are some indications that C++ has
been losing popularity in the last ten years (e.g. tiobe).

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/](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."

------
lingua_franca
you better decide what you are interested in doing first, then pick a language
that suits best. if you want to do kernel/OS, choose C; for big data
Java/python is the way to go. C++ thrives in middle-ware systems, like
messaging/storage/databases/gaming...

------
jedi_master
If you can wrap your head around advanced C++ concepts and idioms, learning
other languages will be a walk in the park. All the knowledge will be 100%
transferable to anything you use in future. Also a lot of companies using
java, c# etc will take c++ experience as relevant experience even though you
aren't a java/c# expert, but the inverse is not true.

It's never a bad idea to learn something that has shaped essentially
everything that has come along since.

------
SamReidHughes
I think learning C++ is fine, and I don't think you should worry about
obsolescence. I think any language that replaces C++ will still use its
idioms. When it comes to high performance stuff, the real knowledge is not in
C++, it's in dealing with cache-friendliness, how to shovel stuff in/out the
network or other devices quickly, architectural stuff like event loops vs.
threads. I think C++, the language, is a tiny portion of that knowledge.

------
bnejad
I don't see a need to jump ship with java... Stick with whats paying you but
that doesn't mean you can't learn C++ on the side. Personally I don't see C++
going anywhere (I code C++/C for a living) and learning a language closer to
the metal will make you a better developer overall.

