Live data from Hacker News

The pool of talented C++ developers is running dry

efinancialcareers.com

601–610 of 869 posts

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

#601

Earlier quoted context omitted.

Sadly this sounds like a lot of crappy software shops generally, embedded or not.

Yeah, but in real life scenarios, the difference in actual numbers, as opposed to percentages, matters. Let's imagine that the split for all software shops is 80/20, with 80% being crappy, and 20% being decent. If there are 10 embedded software shops out there, it means there are only 2 decent embedded shops out there that an engineer can work at. Meanwhile, if there are 1000 non-embedded software shops, it means tha…

To build on your argument:

The 20% decent shops are retaining their engineers and only growing at a sustainable rate. Available new jobs are filled with a referral since every employee is constantly bragging to their friends. So they post few / no new jobs online.

The 80% crappy shops are shedding employees (turnover) and also poorly managed so they fire everyone and rehire later. Only the worst employees decide to remain during such a purge. So most new posted jobs (more than 80%) are for such companies.

Then the 80% crappy companies talk about their issues finding staff and you get articles complaining how hard it is to find XYZ employees (interns, C++, even supermarket staff). But the real problem is the company in question, not the industry as a whole.

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

#602

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…

"IE" ?

Surely not Internet Exploder?

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

#603

Earlier quoted context omitted.

If people think C++ is hard to learn and attracts opinionated people boy are they in for a surprise when they start using Rust.

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.

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

#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 performance, or you don't have to use some specific libraries, or maintain some legacy code, there is no reason to use C++.

Also, a humorous rant:

1.5 years? I've been programming C++ professionally for 15 years and it's still a daily struggle. It's a minefield of footguns, within which are buried unexploded munitions from previous generations, all administered by a posse of savants gleefully adding more and more convolutions to the language to "modernize" it.

I have to also Google what headers cstd/std stuff comes from all the time

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

#605
post #64

Earlier quoted context omitted.

> All of this to say: if you want C++ programmers, you need to pay competitive enough rates to pull them away from there. I'd modify this to say "All of this to say: if you want programmers, you need to pay competitive rates." I worked in real estate for a while (as a software dev) and my boss, who was a realtor, always said "there's no house problem that price can't solve". The labor analogy for me is "there's no la…

> The labor analogy for me is "there's no labor shortage that salary can't solve". Assuming the labor you need is fungible. For a sandwich shop, raising pay will probably solve a labor shortage. But even salaries of $10,000,000 a year won't produce more surgeons. It might inspire more people to get into the pipeline, but that's a 10-15 year lag.

There might be a 10 year lag creating more surgeons from scratch, but you'll have existing surgeons suddenly working for your company today.

Your 10-15 year lag assumes untrained workers. You'll have a stream of people transitioning from other medical professions or surgical specialisations to your $10mm job category, many of whom require much less than 10 years of additional training (1-2 years? on the job?).

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

#606
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…

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…

I coded in C++ professionally for about 15 years and don't remember it would be "incredibly daunting". Not easy, but doable. But yes, I also exited the pool, now I work in Golang and just wouldn't go back to C++.

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

#607
post #47

Earlier quoted context omitted.

Yep. I build glorified CRUD apps in NodeJS + React, my friend works on some embedded C++ stuff. - My working hours are way more flexible. I pretty much only have to attend meetings which are rare, so I can basically work whenever I want during the day. That means that I can go to the dentist and stuff like that without taking the day off. She has pretty strict hours. - I can work from anywhere, only requirement is de…

> glorified CRUD apps Why is API design/backend engineering the only software discipline that gets maligned like this? These are bread-and-butter operations. I don't mean to attack you, just noting that I never hear anyone talk about mobile development in the same way, for example.

> Why is ... backend engineering the only software discipline that gets maligned like this?

Where do I even begin? The intrinsic difficulty of most backend problems is very low - read some customer data, save it to a database, call an external API, send data back to customer. The only effort you should have to put in is fighting boredom.

The web dev industry managed to overcomplicate this task to the point where even small startups targeting niche markets have architectures inviting race conditions over distributed systems with tens/hundreds/thousands of working parts.

It doesn't have to be like this. The problem is that your average web dev doesn't know how to scale down (optimize for space/memory/disk consumption), so instead they scale up (more computers). Scaling up isn't necessarily a problem if you know what you're doing, but I've seen a bunch of super-principal engineers regurgitating the popular scaling up buzzwords without actually understanding the tradeoffs. They choose a technology because Google is using it.

It's not fun to fix deep systemic problems in distributed systems when the system has already been running for a long time, and there's a large number of devs working on it. You can't just say "ok, everyone stop working, for a while, we'll take a couple of months to rewrite everything, the customer can wait".

What's worse it that this type of issues would've been obvious from the very beginning to anyone mildly curious to imagine what the future of such a system would look like.

Another type of common issue is slow queries, and the common "solution" results in eventual consistency.

I'll stop now.

> I never hear anyone talk about mobile development in the same way

Mobile development is just as bad, maybe worse. One overly complicated framework (Android), and another one that's fenced-off to non-Mac developers.

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

#608
I had the most fun ever writing c++ 20 years ago. The power of the language amazed me, combining high level constructs with low level control and many, many (too many) powerful features. And so many ways to completely screw yourself up.

I vowed never to use it again. I miss it still but it's just not worth it.

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

#609
post #565

Earlier quoted context omitted.

A lot of CRUD app development feels like tedious, repetitive busy work. Data entry was a solved problem in COBOL if not earlier, it's not gotten any harder in the decades since, it's just gotten more tedious. There are generic data entry tools that solve the entire class of problems in that space. In web tooling there are things like Django's Admin app. In "the ancient world" there is Excel for good and bad and ugly.…

I think there's truth to this but you're glossing over details that are critical. If the amount of variation between products were countable and predictable as you paint it, then you'd only need designers and a cms specialist who can configure the product. As a web shop, this is much cheaper to do. There are tons of website builders today which has saturated the "simple" market, but "intermediate" customers have smal…

I pointed to two clear examples where we as an industry have automated it (Django's Admin app, Excel), and I could name tons more (Access, Power Automate, InfoPath, Power Apps, SharePoint Apps, SharePoint Lists, and those are just the Microsoft side of the list; you mention CMS specialists and we could list out of the box CMSes for days).

> still need custom integration work

Define "need" here. I already threw some shade at this by accusing many companies of thinking their every need is a special little snowflake that needs lots of custom tweaks and custom specifics. In my practical experience so much more of that is "want" rather than "need". They want to feel special. They want to feel like they have control. They don't want to pay for the cheap out of the box CMS because it might imply to their executives and shareholders that their entire business is cheap and easily automated.

Some of these CRUD apps are truly "John Hammond syndrome" apps: they want the illusion that no expense was spared. (And just like John Hammond sometimes confusing building out the gift shop and adding fancy food to the restaurant in the Visitor Center with spending enough on redundancy among the critical operations work and staff.)

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

#610

There's lots of C++ programmers out there. But they're bottled up in FAANG, I think. So you have to be able to compete with that. Working at Google is on the whole a lot of C++. Major parts are moving to Go, certainly. But there's absolutely giant code-bases of pretty cleanly written C++ services, and most Googlers are quite proficient in it and there's whole teams at Google that work on improving C++ standards and t…

From what I understand, Google is really about a crippled subset of C++, that people jokingly call "C+-". I ran a C++ shop for 25 years. I used to program in it, but stopped, many moons ago. The new C++ is a huge change from what I knew. I am expecting to see a lot of hate for the language, in this thread. Regardless, it is a very powerful language, and it is not for the faint of heart. I attended a Swift conference,…

It's hardly "crippled". I find myself quite productive writing C++ at Google.

Take a look at the style guide yourself. I think it's pragmatic.

https://google.github.io/styleguide/cppguide.html

Post reply on HN