Live data from Hacker News

The pool of talented C++ developers is running dry

efinancialcareers.com

411–420 of 869 posts

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

#411
post #299

Earlier quoted context omitted.

I learned programming in the 90's using C++. When someone expresses this intent I always ask the same question. Am I a supergenius or are you mistaken?

One could learn in C++ using a variety of methods… including the ignore memory management variety. The question is why? For a student learning dfs for the first time or hash tables/queues etc. python will be much easier to learn. Java/rust/go will likewise be easier if you want to talk about types.

Java and Python's notions of type safety are completely brain damaged. I can't imagine how things would have gone if I'd learnt them as first languages.

Rust, C and C++ get that better, in my opinion (you have to consciously choose to write type safe code in two of those languages, but at least it is possible in all three). Go's thread safety is way behind Rust's. meh.

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

#412

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…

In real-life, engineers aren't just cogs in a wheel that are interchangeable, who can seek work in any organization. There is also a smaller number of people who can/want to do systems level/embedded programming.

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

#413
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 someone who has been writing C++ at Google, this exactly. Despite all the tooling, guidelines and "internal magic", C++ is still an abomination. And no it has nothing to do with memory management, I actually do like C.

I love how Eric Raymond describes it as "anti-compact", because, well, it really is. C++ as a whole should be deprecated -- and no new projects should use C++ (unless for some very odd and specific reason).

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

#414
post #57

> Hickling pointed to Java, which has long “seemed to be replacing C++ itself,” but hasn't. This is inaccurate. Java completely ate C++'s lunch in the enterprise space back around the turn of the millennium. Java doesn't need to continue to eat into C++'s marketshare in other domains, because it has more than enough mindshare to sustain itself (there are more Java programmers than C++ programmers), and its very exist…

> Java completely ate C++'s lunch in the enterprise space back around the turn of the millennium When was that C++'s lunch? I might be wrong, but for backend dev(majority of enterprise work?) C++ was never a big thing.

Late 90s to early 2000s for sure. Tons and tons of backends of various kinds were written in it. If it was Windows it was typically running on COM/DCOM, and in UNIX it was usually CORBA. Sure, the UI was typically written in something else. Dawn of the Web with CGI, and if we are talking desktop people would use something like Visual Basic, Power Builder, or Delphi. But C++ pretty much dominated that space until Java got decent enough and fast enough.

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

#415
post #155
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…

150k plus bonus. It's at a quant firm, so the bonus is likely to be ~50% of base salary if you do okay, and multiples of that if you do great.

What are hours like at HFs and quant firms? I’ve heard they can be bad.

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

#416
post #27

Earlier quoted context omitted.

Having recently learned C++/C.. I don't see why it would be taught as a first language outside of specializations. The gains from C/C++ coding are vastly outweighed by the costs. The reality is that there is no good, agreed upon standard in C++ for how to manage memory... how would you teach this to junior engineers at university?

I'm always conflicted with this. My gut says any new student should start with an interpreted language like Python or JS/TypeScript. As that gets you to running code, and core concepts like variables, loops and if statements in little to no time. However, there is value in learning some of the under the hood concepts such as pointers, structs, memory layout, endianess, pass by reference, compilers etc. I don't think…

> pointers, structs, memory layout, endianess, pass by reference, compilers etc.

C++ is a bad language to teach any of these concepts. Sure, people will be exposed to the concepts, but they are presented in a rather esoteric fashion. Not to mention, actually leveraging those concepts in is bad practice anymore, i.e., using a pointer arithmetic to loop over arrays instead of iterators or the like.

I didn't grok a lot of those concepts until I took computer architecture, which was taught in assembly language. And we weren't taught x86, but a toy assembly language designed for teaching.

Another big pain point I had in school is that every professor / TA had different opinions on what was a right and wrong way of doing things in C++. And sometimes their opinions would conflict with the damn documentation too. There's nothing like having to relearn core language concepts every year at the whims of professors. This is probably where most of my disdain for the language has come from.

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

#417
I wondered why C/C++ is not appreciated more by engineers. I hear a lot of comments along the lines "rust is safer". While I get it is safer in some aspects a lot of times I've heard people end up writing unsafe rust anyways. Then the next argument goes well you should write as little as possible of that unsafe rust. Fact of life is that you will need to write unsafe rust. Actually unsafe INSERT_ANY_LANGUAGE_HERE. My point is as an engineer you will need to learn how computer works. And I don't mean just at a surface level but really deep. So once you have that knowledge why not just use it?

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

#418

Earlier quoted context omitted.

I'm really hoping the salaries for EE type roles start to match software as the grey beards start to retire and talent becomes scarce. We've got a legion of grads going into CS, but EE classes are a fraction of that. Despite that, software roles are often more than double the salary. Any role I go into as an EE/Embedded Systems engineer, I'm more often than not the youngest by 20-30 years. I wonder how the industry i…

Yeah same, I’m an EE camping out in software because of the pay. It’s also just easier work. I would much rather be intellectually challenged coding firmware or embedded work. I didn’t go to school to build web widgets. It’s just EE pays so badly you can’t make the bills. I was getting offered numbers that wouldn’t have afforded my own studio apartment to rent. For EE work. It’s insulting.

...which is ridiculous because of what it takes to become an EE VS what it takes to become a "web developer". Basically anyone who can handle basic logic can be a web developer if they just put in a bit of effort. Degree or not!

To become an EE you need a 4-year degree and a whole heck of a lot of knowledge about things that are a real pain in the ass for laypeople like calculating inductance, capacitance, and impedance ().

You don't need much knowledge to make a circuit board, no. But when your boss wants to add a USB 3.0 hub to your product it suddenly becomes a, "wow, we really need an EE" job (because the spec has so many requirements and you're not going to get your product certified unless you can demonstrate that you followed it).

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

#419

Earlier quoted context omitted.

Ah yes I used to work at a california company as c++ developer. There was no automated test whatsoever. QA department was just manually clicking things on a client that would connect to my c++ thing. When I wrote a couple of unit tests I got told off because I was wasting time not doing features.

Why waste time writing tests when you could be busy fixing bugs!?

Jokes on you, they probably didn't fix big either ;)

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

#420
post #41

I've seen this story several times. Once a language no longer has a developer pipeline, it becomes a language with no future. No matter how important and widely used. You wind up with jobs begging for qualified developers. Given how systems last, the language may survive indefinitely. As nobody dares migrate projects off of it. But employers will struggle more and more to find employees. The first language that this…

C++ is not going anywhere. All operating systems and almost all compilers for every other language (plus many of their runtimes) are written in it. When the heat death of the universe is upon us and all other languages have ceased to exist and re-emerged thousands of times over, C++ will still be here, driving the lower-most layers on top of hardware.

>All operating systems

C != C++

Post reply on HN