My 2 cents, if you get out of the echo chamber of SV and tech startups C/C++ are still very much alive and in many cases growing in usage. Inside SV and tech startups C/C++ are both treated like the elderly family member people just put up with but dismiss, when in reality that person has a shit ton of knowledge everyone could learn from.
To compile to machine code, not bytecode.
Also in this case while there are some compiler differences between platforms for C/C++ they are well documented and known. If you stay in the middle of the language and don't try to use fringe features of the language or a specific compiler then you won't have any issues. People that complain about portability or GCC etc are generally using language extensions of a specific platform compiler which can make portability a pain.
Some used LLVM and some used GCC/Clang, I'm splitting over which is a better choice to build "statically typed" programming language.
When I set my projects up I generally use gcc/g++, but that in no means is the only correct way. Just a personal preference given the number of platforms that gcc supports, including embedded.
Does anybody have any data or anecdotes about the relative market value of C++, Java, and Go?
C++ work seems to have an odd bimodal split. All the kernel and low level hardware work seems to pay a fraction of what FAANG pays.
But at the same time, the majority of significant systems at Google are in C++.
Thoughts?
If a non-programmer asked me if he should learn C++, my answer would be "Only if you really, really want to. Otherwise Python, Javascript or Rust is probably a better idea".
If someone has a specific project in mind, C++ might be the answer, although probably in a minority of cases.
If someone just wants to expand their mind, then sure, why not. But there might be equally or more interesting things around, that's something that can only be retrieved from context as well.
Learning is always good, but there are subjective, qualitative nuances to be considered.
I feel like Rust does not belong in this list. Why would you introduce a non-programmer to Rust?
If you’ve got a specific project or job in mind then sure.
Common Lisp too for a very different perspective. Swap your powerful type system for a powerful macro system. Then decide what you prefer!
And finally idiomatic Javascript (i.e. don’t use classes!). People have wrote you don’t need static types if you have great tests, so I want to think about that idea. I always keep an open mind.