Live data from Hacker News

The pool of talented C++ developers is running dry

efinancialcareers.com

491–500 of 869 posts

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

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

>However, there is value in learning some of the under the hood concepts such as

>[...]

>I don't think schools need to teach employable

My University taught the intro CS class in Scheme; years after I graduated they switched to Java and last I saw it was Python (based on visits back to campus and wandering through the bookstore to see what textbooks were for sale). I just checked and it still Python, based on the course description ("how to design and implement algorithmic solutions in Python"). I see a few 2xx level classes are in Java, and after that it stops mentioning specific languages.

Anyway, it's tough since there is pressure to teach the concepts, which argues for certain languages, yet also produce employable graduates, which argues for certain other languages.

Finding overlap is tricky... teaching theory in Haskell, under-the-hood concepts in assembly, software development gluing libraries together in javascript/c++, may in fact be the superior approach... but there is fatigue associated with learning languages just to learn more languages when maybe a nice general language that serves many educational needs is a better way.

Python might be the sweet spot to start out with, and indeed it looks like the 3 intro classes at my alma mater, are taught in Python. I'd like to think the driving force behind this is that 1) Python works well, and 2)using one language for first year students (well, 2nd semester 1st year or perhaps 1st semester 2nd year) lowers the mental overhead on the students.

Going heavy on C/C++ early essentially selects people that already come in with a programming background. Some folks don't get that, or not much of it, in high school and want to enter the field anyway. And I think it is fair for them to reasonably expect, like you can with every other academic field, that they can do that via the starting curriculum.

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

#492

> However, only 9.3% of respondents used Rust at all and only 8.8% did so professionally. C++, meanwhile, languished at 48%. I mean... it sounds like there's a lot of C++ programmers? I guess the problem is that "talented" C++ programmers are rare. But... "talented programmers" in general are rare.

It's a poorly written sentence. The key idea is: "Rust got an 87% approval rate in the "most loved" category of the Stack Overflow Survey. [...] C++, meanwhile, languished at 48%"

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

#493

Earlier quoted context omitted.

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…

the chance of you being taught correctly by your so-called "professors" (they are not professors unless they have been appointed to a chair) is vanishingly remote, but this has zero to do with the language

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

#494
post #413

Earlier quoted context omitted.

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…

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

Mark Russinovich (of Sysinternals fame), thinks Rust should be the non-GC language of choice moving forward.

https://twitter.com/markrussinovich/status/15719951172335042...

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

#495
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.

I declare your comment to be high quality BS.

First of all I never said C++ was going anywhere. I compared it to COBOL which is still estimated to be involved something on the order of 60-80% of financial transactions. C++ has a similarly bright future.

But secondly, your claim is wildly overstated. C++ is a lot less fundamental and essential than you think.

Operating systems:

Linux and the *BSD family are written in C, with Rust making some headway. (But C++ would be over Torvalds' dead body - see http://harmful.cat-v.org/software/c++/linus for example.) OS X is written in a combination of C and Objective C. Android is written in C and Java. Windows has a lot of C++, but the kernel is straight C for reasons that Raymond Chen explains at https://learn.microsoft.com/en-us/shows/one-dev-minute/one-d....

Not only are not all operating systems written in C++, but most of the most successful ones aren't. And multiple groups, INCLUDING ones otherwise sympathetic to C++, have concluded that C++ is a terrible choice for kernels that are close to the hardware.

Compilers.

Well GCC is written in C. (Though Clang is C++.) So are the interpreters for Python, Ruby, Perl, and PHP. One of the backends for Go was originally C but has been ported to Go. (They maintain another C++ backend.) Julia's backend is mostly C. (A few libraries are C++.) However JavaScript and Java are both written in C++.

Reality is a long, long ways from your claim that almost all compilers for every other language are written in C++. In fact straight C is a more popular choice.

You didn't talk about GUI applications. But there you'd have more of a point - C++ is far more popular there. However even that it isn't a slam dunk. Rust was explicitly developed as a response to the fact that C++ makes security very hard. The idea being that it would be easier for Mozilla to port security critical modules from C++ to Rust than to secure C++. Since security is getting ever more important, it now makes sense to write in a different language first.

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

#496

Earlier quoted context omitted.

You may also look into Kernel Programming for a lucrative systems programming career. It is more C and low-level oriented though.

Interesting, what types of companies pay well for kernel programming?

Significant portion of kernel code is written by FAANG, for example. There are other companies that also pay reasonably well. You can check some statistics of contributions to Linux kernel here https://lwn.net/Articles/909625/

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

#497

Earlier quoted context omitted.

as a rails dev, if I were to start a new project today I would still pick rails. It makes building web apps a breeze. The technology is mature, stable, active and still staying modern in terms of integration with modern JS you start running into problems as you scale, but the reality is you will run into scaling problems regardless of what technology you use, and the ability to move quickly and iterate is much more i…

>as a rails dev, if I were to start a new project today I would still pick rails. It makes building web apps a breeze. It's also a breeze if you use .NET and it will run circles around the Ruby app.

haha but then I have to learn the entire .NET / windows ecosystem which is a huge jump considering i've only ever developed on mac/linux. I am using wsl now though

and running circles won't matter because for most web apps the DB is usually the bottleneck anyway

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

#499
post #186

Earlier quoted context omitted.

At a previous company our firmware was literally called by a part number. So I would regularly work on the repos 5400-520, 5400-521, 5400-524, 5400-526, etc.

I remember an embedded company I joined; when I asked how they manage releases, the eng manager said, "well, we find an engineer who has a copy of the source code that can successfully build with no errors, copy it off their workstation (debug symbols and all), and send it to the factory to get flashed onto devices." Total clown show.

'sometimes we check it into sourcesafe' in 2018...

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

#500

Earlier quoted context omitted.

I agree. No matter gray beards bashing Rust on HN every time it comes up, programming in Rust brings me joy and I will never use C++ again if I have a choice.

i will admit to the beard, but isn't it strange that the number of posts praising rust and haskell has dropped of a cliff here in the past months?

There are just as many written-in-Rust posts as ever, although the practice of appending "in Rust" to the title has fallen off (there's literally one of these at #3 on the front page right now). Meanwhile, an article from IEEE evangelizing Haskell was literally on the front page this morning with 256 votes.
Post reply on HN