Hacker News new | ask | show | jobs
by guard-of-terra 4772 days ago
What's up with C++ in 2002 and today? If you knew C with classes in 2002 (MFC style) you were good, if you knew GoF patterns you were elite.

Today you have to know STL, auto/smart/shared pointers, all kinds of right casts, you have to know boost (a huge code base) and on top of that you are expected to know C++0x (or how is it called?) with its lambdas, autos and stuff, while still understanding the whole "classic" C++.

(But at least nobody cares about MFC and ATL anyway)

And don't forget templates of templates of templates which crept into many code bases. And 64-bit (or ARM) is now reality which you should account for.

If anything, you have to know ten times more in C++ in 2012 compared to 2002.

3 comments

> But at least nobody cares about MFC and ATL anyway

About a decade ago I did a lot of MFC/C++.

Form what I see here in Australia one of the reason nobody cares about MFC and ATL is for the last 5 years C++ has been pretty much dead on the Windows platform.

Over here in Oz C# and .Net are the kings of the Windows platform.

Your example is flawed.

C++0x is easy to learn. For example, autos is just the ability to say "auto myFloat = 5.0;" and it will default to float.

Lambdas in C++ is fairly easy. right casts? trivial [especially with auto].

Templates of templates of templates are easy as well.

64-bit? ARM? The whole point of C\C++ is to make yourself not assembly. You shouldn't worry about 64-bit vs 32-bit as long as you use proper things.

This, my point was that you can use C++ make_shared (and eventually C++14 make_unique) instead of manual management, you can get away with a lot more reference passing instead of of raw pointer manipulation, the std now has an actual hashmap implementation now, auto and lambdas make things faster, etc.

Modern C++ vs second iteration standard C++ in the wild west days when I was first learning about it is an entirely different affair.

I also contest having to know boost - I work in some KDE projects and boost is only a dependency on around 1 in 4 that I have found. Though qt in many ways becomes the surrogate stack to learn.

Very true. What % of developers are writing C++ however? I'd think it's a reasonable assumption that they're going down (and a cursory glance at Indeed shows this).

So some jobs will always pay well; the average salary should go down if the average skill need goes down however. (Ignoring for the moment that some lesser skilled development jobs actually pay better as a result of demand)

If we take ruby, you still have to know ruby, rails, js, jquery, sql, quite a few libs, html, css, be familiar with ie/webkit/firefox, be aware of sql injection, xss, csrf and stuff. Do not forget http, rest, be able to understand caching, dns, proxying, load balancing. It's a lot of knowledge. In 2002 you could get away with a perl script!

use CGI;

Yeah it is very difficult to find Rails developers who are on the market. Wages for Rails developers have certainly been going up in the Bay Area, even including the tons of junior hires, because no one can find senior talent.

Maybe this isn't the case in the middle of the country where businesses don't realize that a 10x programmer is easily worth 2x the salary of a brand new programmer.

Ruby may be easier to pick up than C++ but the entire web stack still requires quite a lot of knowledge. Especially when you start talking about scaling databases, distributed systems, fault tolerant cloud architectures, etc.

Even 1x programmer still has to know a lot of topics or his products will be lacking.