Live data from Hacker News

The pool of talented C++ developers is running dry

efinancialcareers.com

751–760 of 869 posts

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

#751

Earlier quoted context omitted.

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.

Java is based on Objective-C without any of the nice flexibility, doesn't have value types, has C-like numeric types except they're less flexible yet not any safer, and its culture thinks you organize code by putting it into 6+ layers of namespaces inside other namespaces. My rule is that languages are good if they have value types, which explains why PHP is good.

C# also has value types and structs. Also a bonus over the top fanboyism is absent.

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

#752

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.

I don't think that's true. I started C++ using the 'cfront' system, the major push wasn't because C was somehow lacking, it was because it was fashionable to do object orient programming which is hard in C. Various horrible patterns were invented using function pointers so C programmers could feel like they were doing object oriented programming and all of them sucked. When cfront turned up, the first versions basica…

Yes, OOP kind of sucks. But you can use C++ without OOP if you so wish.

C# is much better but still it isn't a systems programming language due to garbage collection. So while you can solve some classes of problems easier and better, it can't replace all of C++ use cases.

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

#753

Earlier quoted context omitted.

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.

templates are one of the best features of c++. they're complicated because they're powerful. they certainly aren't perfect, but you won't find anything like them in other popular languages.

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

#754

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…

rust doesn't have many of the features of c++, so it seems easier until you realize it's not.

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

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

Java is not very fast compared to c++, or you'd see it in embedded systems all over.

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

#756

Earlier quoted context omitted.

> I'm still wondering why `(int)` is spelled `reinterpret_cast ` in C++ 1. because it is greppable and unsafe 2. because there is also static_cast and dynamic_cast 3. Because in C (int) is all three at once and not greppable -> C will let you do whatever, C++ will not let you do with a static_cast everything you can do with a (T) cast. All in all, it is nice to ask, but if you do not know what you are talking about e…

> 1. because it is greppable and unsafe But it is not unsafe, or rather, the C++ casts aren't more safe. They have the same semantics. There are differences casting between class types, but with numeric types the issues are how to handle the value not fitting in (or being imprecise) in the destination type. Casting a value to int in C++ that overflows is still UB. It doesn't fix C's other strange numeric issues eithe…

they are unsafe because if you try to cast something that's not valid the compiler won't let you. you can then choose to ignore it and be unsafe, or figure out the problem and fix it.

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

#757

Earlier quoted context omitted.

The difference between C++ today, and what we had 20 years ago is not much. C++ has functionality built in today, we didn't have, but the OS provided, and now the language has many features we wished we had years ago. Example: Variadic templates. When that happened, the problems we would bang our head against the wall with magically vanished. Twenty years ago, every implementation of the std library had serious bugs…

Template metaprogramming is hardly ever needed anymore. C++20 has better built-in features that for most of what was done with it, that compile much faster. Almost all C++ programmers completely ignore it. You can too.

template metaprogramming is used extensively in libraries. c++20 didn't really change that; it makes metaprogramming nicer to read, but it does not obviate the need for it.

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

#758

Earlier quoted context omitted.

I don't know why you say that, because even in lieu of high inflation, USD has been less volatility than the majority of cryptocurrencies.

With fiat you KNOW you're getting poorer by the minute, but with crypto you have the hope you will earn more. Fwiw I have a grand total of 300€ "invested" (or "lost" if you're a pessimist) in crypto, so I'm not exactly a crypto fanatic.

The point of money is to be spent, not to hold it. You can't have an asset that's both good to hold over the short and long term. (I forget where this is stated.)

That's because the point of an economic system is to trick other people into making food for you, and holding money instead of trading it obviously isn't going to lead to that.

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

#759

Earlier quoted context omitted.

> You may also look into Kernel Programming for a lucrative systems programming career. This is the road I have taken since I started to work professionally, but I yet have to find a lucrative job. I know that I am paid more than microcontroller devs, but less than web devs. The market for kernel developers is not that big either.

I did Linux kernel work for a decade at my old company. Left due to low pay. Also worried about my employability. Not much call for C programmers in 2022. You’ll always fear losing your job. I love low level though, I do embedded projects for fun! I can probably sling back-end Python for 1.5x the salary. I wish embedded payed better, but it doesn’t and therefore I won’t help alleviate this “shortage”.

If you are ever looking for C opportunities, my team would probably like to be aware of you when the hiring freeze is over. We work on next-generation volatile and non-volatile storage projects including an open-source storage engine.

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

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

I write them routinely. Many, many people write them routinely. It is easy, in modern C++.

You appear to have fallen for the Rust hype machine.

We do know many people at Google can't.

Post reply on HN