Live data from Hacker News

The pool of talented C++ developers is running dry

efinancialcareers.com

721–730 of 869 posts

Re: The pool of talented C++ developers is running dry

#721
post #209

I’ll offer a perspective unrelated to pay: It’s a pain to start learning C++, and even after you do, older devs will roast the hell out of your code because your book/tutorials of choice forgot to mention a crucial (in their opinion) feature that you absolutely should/shouldn’t use! Not to mention you’ve only programmed on Mac/Linux so far & windows is totally different, has a different compiler, different ways to in…

As an older dev, screw those older devs that 'roast your code'.

The really good ones won't do that. The ones that do suffer from some weak superiority complex. I had three awesome mentors when I started writing C, and a couple great mentors when I did what little C++ work that I had to do.

The only scold I ever dealt with wrote overly wrought, overly complex crap. Kitchen sink patterns to handle any possible future variation, instead of solving the problem at hand.

Stay away from people like that, they'll just turn you into the same old grouch.

Re: The pool of talented C++ developers is running dry

#722

Earlier quoted context omitted.

The funny part about cobol is that even if you say you know the syntax, there is site specific implementation details/features which are even MORE critical than just the language.

If you have time, I would really love to know examples of this. This is very interesting.

See: New Jersey State Unemployment Insurance.

Re: The pool of talented C++ developers is running dry

#723

Earlier quoted context omitted.

I wonder how the Cobol market is doing?

The funny part about cobol is that even if you say you know the syntax, there is site specific implementation details/features which are even MORE critical than just the language.

My favourite example of this is that you have to recompile program when a used table schema changes, otherwise it will crash.

edit: Just realized that it's more platform specific than site specific.

Re: The pool of talented C++ developers is running dry

#724

Earlier quoted context omitted.

This. Learning the language as a whole is an incredibly daunting task. It's ugly, it's built on a combination of OOP and procedural C and quite frankly, the class syntax in combination with header files has aged pretty bad. I feel like I have a lot of code I need to write twice. The standard committee keeps tacking on new features and decade old footguns are promised to never be fixed (and somehow, people consider th…

It's only ugly because it was meant to be a federation of different programming paradigms. You can mix low level C calls with homegrown RAII frameworks, or mix traditional OOP with functional programming. Once you start throwing in preprocessor macros, meta programming, and templates, you can have a codebase that is incredibly complex to understand and maintain. As for the header/implementation separation, I always t…

Templates and Lambdas. Woof.

Re: The pool of talented C++ developers is running dry

#725

Earlier quoted context omitted.

Learning rust is like cycling over 2 big hills. It’s exhausting and painful if you’re in any way out of shape. Learning C++ is like cycling from SF to LA. It starts easy enough and every day you’re making a lot of satisfying progress. But you have so far to go because of all the features and quirks of the language. It’s probably easier to get started learning C++. But it’s also much faster to finish learning rust and…

More like NY to SF. The Appalachians would be when you're first learning pointers and the Rockies would be about the time you hit the STL and friends.

Having cut my teeth in Z80 Assembly, I could never understand people's aversion to pointers. You cannot do anything of any practical use, on hardware, without them.

Re: The pool of talented C++ developers is running dry

#726
post #644

Earlier quoted context omitted.

>C++ as a whole should be deprecated -- and no new projects should use C++ (unless for some very odd and specific reason). And what can be used instead of C++? C? If C was better, then C++ wouldn't have been invented. Rust? It's much more painful to use than C++. Zig? It's immature and has very low usage. Nim? Has very low user base. Julia? It isn't solving the same problems.

> And what can be used instead of C++? For most use cases Java is a better option. Very fast, without any of the pain. If you truly must not have a VM (rare), there's still C. Perhaps rust.

I think this is probably the most salient point. C/Rust then Java. I don't know why people hate on Java so much. And I think C lives fine along side Rust.

Re: The pool of talented C++ developers is running dry

#727
post #209

I’ll offer a perspective unrelated to pay: It’s a pain to start learning C++, and even after you do, older devs will roast the hell out of your code because your book/tutorials of choice forgot to mention a crucial (in their opinion) feature that you absolutely should/shouldn’t use! Not to mention you’ve only programmed on Mac/Linux so far & windows is totally different, has a different compiler, different ways to in…

As a C++ enjoyer I would 100% have learned Rust if it was around when I started... just for Cargo alone. Problem is now I've already done my time in the Makefile trenches there's little incentive in me re-learning another systems lang and having to compete with lots of smarter people, with more Rust exp, for jobs whilst giving up all my arcane knowledge of CMake and friends. Rust being popular atm is great for C++ if…

> it siphons away a new gen of systems programmers over to another lang allowing me to sell my dark services for more coins

I've always been curious about whether it really works this way. First order, one would consider supply and demand leading to increased wages. But whenever I've looked into the reports of "COBOL programmers are getting paid a fortune because there are so few of them alive!", the reality has been that wages are ... unimpressive.

My hypothesis is that as the talent pool shifts elsewhere, the market dries up. For instance, new projects aren't started in COBOL any more (well, at least anywhere I've seen...). You're left doing maintenance on ancient systems, where the calculus is always "this needs to be cheaper than a new solution". Maybe it's the "liquidity" of the job market for a given language?

Re: The pool of talented C++ developers is running dry

#728
post #369
post #209

I’ll offer a perspective unrelated to pay: It’s a pain to start learning C++, and even after you do, older devs will roast the hell out of your code because your book/tutorials of choice forgot to mention a crucial (in their opinion) feature that you absolutely should/shouldn’t use! Not to mention you’ve only programmed on Mac/Linux so far & windows is totally different, has a different compiler, different ways to in…

I find python such a pleasure in comparison. I can express myself so easily.

As long as you force everyone to run their code through pylint.

Nothing like hitting a really rare corner case at runtime that just fails syntax and the process exits.

Re: The pool of talented C++ developers is running dry

#729
post #664

Earlier quoted context omitted.

>C++ as a whole should be deprecated -- and no new projects should use C++ (unless for some very odd and specific reason). And what can be used instead of C++? C? If C was better, then C++ wouldn't have been invented. Rust? It's much more painful to use than C++. Zig? It's immature and has very low usage. Nim? Has very low user base. Julia? It isn't solving the same problems.

> Rust? It's much more painful to use than C++ Write a sufficiently complex memory safe program in C++. I dare you. It's been proven again and again that humans can't do it. And calling Rust more painful than C++ is just absurd.

> Write a sufficiently complex memory safe program in C++.

That is totally easy.

What's not so easy, necessarily, is complex numerically safe program in C++ (that performs well).

Re: The pool of talented C++ developers is running dry

#730
post #604

As someone who has been painfully self-teaching C++ for the last ~1.5 years on and on, these are my hangups: - The features that make C++ decent are often found in C++ 20/23, for which there are woefully few resources - Code taking advantage of coroutines and generators isn't commonplace yet, rare to find examples - C++ 20 concepts are a near mirror copy of Rust Traits and enable composition that's an alternative to…

C11 resources are just fine to start with. That will bring you to "modern C++". C++ is not about bleeding edge. Nor is it about being a good, modern language. It's key feature is to be able to tweak performance based on profiler data. So, you want to write code you understand well enough, so you can adapt it based on the feedback profiler gives you. If you don't need to write code that needs to get every last bit of…

Never memorize the things you can find in documentation, or through tooling.
Post reply on HN