Live data from Hacker News

The pool of talented C++ developers is running dry

efinancialcareers.com

841–850 of 869 posts

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

#841
If having a VM/GC is acceptable then C# is the overall best language/framework today, meaning that it ranges from good to great in everything: Web, Game Dev, Desktop Dev, Mobile etc. Otherwise there's no general contender. With C#, these days you can go for unsafe code and dealing with native code in safer ways using new/ish features of the language: Span/Memory, refs, ref attributes etc. Or just use good old pointers directly and manage everything yourself.

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

#842

Earlier quoted context omitted.

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.

> The point of money is to be spent, not to hold it. Why? Why prioritize spending now rather than later? If I can't defer consumption, I will always need to work, and I can't retire. That would be financial oppression. > You can't have an asset that's both good to hold over the short and long term. I am abnormally curious why this is the case. > That's because the point of an economic system is to trick other people…

> Why? Why prioritize spending now rather than later? If I can't defer consumption, I will always need to work, and I can't retire. That would be financial oppression.

I should've said spent or invested. You can save by turning money into I bonds or stocks for retirement, and that works because it funds something productive (stocks/corp bonds) or the government would like you to defer consumption due to inflation (I bonds).

But remember money (vaguely) represents stored up labor. In nature you can't retire because you can't save up labor; saving money isn't just like a squirrel storing nuts for later, it's also like if the squirrel could put off gathering them at all.

> I am abnormally curious why this is the case.

https://en.wikipedia.org/wiki/Risk–return_spectrum

Long term investments (stocks) are better for retirement because they're riskier.

> I'd rather they make food for me when I'm old, instead of when I'm young and I can make it for myself. How is this an argument against saving?

By "other people" I meant farmers, so you're probably not doing that work yourself. There will probably be farms because other people are continually buying enough from them to keep them producing, but if nobody buys something for long enough it won't get cheaper, the market will cease to exist because nobody will produce it anymore. Saving money/retiring in this way is kind of parasitic.

An example would be FOGBANK, which the government didn't produce for so long it forgot how to do it: https://en.wikipedia.org/wiki/Fogbank

> Even in extreme deflation, people buy things they need.

There was a Great Depression where people stopped being able to do that, you know. Deflation really upsets people. Deflation in Germany also got the Nazis elected.

It's not good to think about "the government spending beyond its means" as if it was a household. The government's the one that invented the money in the first place. A fixed money supply doesn't make sense on a planet with an increasing population that all want to use your money because of how awesome the US financial empire is.

And not only did the US fail to get inflation despite best efforts from ~1980-2020, other countries are seeing inflation now without extra deficits.

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

#843

Earlier quoted context omitted.

You can still cast INT_MAX to short no matter how you spell the cast, and the result won't be correct.

There are more casts than those. Anda reinterpet cast is a superset of a static cast. If you want to narrow, you would use static cast, not reinterpret cast. If you want to reinterpret a set of bytes as another object then you reinterpret cast (actuall use std::bit_cast, will catch more errors,). So yes, you can still do that but consciously. In C you could even turn a cast that is essentially a static cast into a re…

> If you want to narrow, you would use static cast, not reinterpret cast.

But if you do that, it's not safe! It's the same as C, which is not safe - it's "implementation defined".

Swift would trap on overflow here.

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

#844

Earlier quoted context omitted.

You can still cast INT_MAX to short no matter how you spell the cast, and the result won't be correct.

You shouldn't be using INT_MAX for the last decade or so. That's why std::numeric_limits exist.

You want me to type `std::numeric_limits::max()` in a forum comment? Bit long.

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

#845

Earlier quoted context omitted.

Yes. So what?

Then it is not a replacement for C++. It's going to be slow.

Static types are not required for things like type inference and optimizing compilers. It's just that many dynamic languages are not written with performance in mind, and have semantics that make optimization impossible.

Julia was designed from the ground up to have C level performance, and well written Julia code does that easily in throughput focused scenarios.

Julia's intermediate representation which it compiles dynamic code down to is statically typed, and any dynamism just manifests itself as the compiler waiting until the types are resolved at runtime before running again and generating new specialized code.

If your code is written so that the types are all inferrable, there's no pauses.

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

#846
post #175

Earlier quoted context omitted.

I worked at a place once where one of the EEs who wrote firmware told me that algorithms and data structures were pointless because in the end it's just bits in a linear address space in RAM. The industry has basically screwed itself. It's pretty typical for companies to consider embedded/firmware as EE work that is done in the gaps of the hardware schedule. EEs generally make bad programmers which shouldn't be a sur…

I’m interested in your startup idea . I’m needing todo some highly complex embedded development for my startup in a highly regulated safety critical space.

It's nothing groundbreaking, although my idea alone wouldn't really help in the safety critical space.

If web development were like embedded development every single company would be building their own web server, browser, and protocol the two communicate over. It would take a phenomenal amount of time and the actual end product, the website, would be rushed out the door at the very tail end of this massive development effort. As the complexity of the website grows, the worse it gets. All of the features being sold to customers take a backseat to the foundational work that costs the company money either through initial development or ongoing maintenance. Plus there's very little in the way of transferable skills since everything tends to be bespoke from the ground up which poses a problem when hiring.

In this analogy that base layer is really just hardware support. This is starting to change with projects like mbed, zephyr, etc. There's still a lot to be desired here and these realistically only work in a subset of the embedded space.

My idea comes in after this. Keeping with the analogy, consider it Ruby on Rails or NodeJS for the embedded world. Certainly not appropriate for all things, but a lot of what I have worked on professionally would benefit from this.

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

#847
post #257
post #213

Earlier quoted context omitted.

Last time I needed to write `delete` I was either fixing some low level garbage code that was super old or writing a smart pointer for a case not handled by the standard library. Either way it was so long ago that I really can't remember which. Complaints about delete aren't about part of common modern C++, if they aren't from subject matter experts aren't well structured complaints.

Last time you needed to, sure. The problem is that if you find out how to do dynamic memory allocation, there will be tons of resources pointing at new/delete. Parts of the language that all the experts agree are terrible are just sitting there, poking out behind a shiny facade, waiting to scratch the unwary.

How is that not the case for any language that lets experts get at the gory details what is the alternative?

Even in languages like Ruby this problem exists. Superficially, Ruby has a decent garbage collector and you never need to dereference a pointer. In practice as soon as it gets slow you hit an optimization stopping point and need to write an extension in C. Then you have all this mess again except with all the baggage another whole language brings to the table and none of the sheltering of a type system.

At some point you just have trust software devs to use the tools.

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

#848

Earlier quoted context omitted.

> The point of money is to be spent, not to hold it. Why? Why prioritize spending now rather than later? If I can't defer consumption, I will always need to work, and I can't retire. That would be financial oppression. > You can't have an asset that's both good to hold over the short and long term. I am abnormally curious why this is the case. > That's because the point of an economic system is to trick other people…

> Why? Why prioritize spending now rather than later? If I can't defer consumption, I will always need to work, and I can't retire. That would be financial oppression. I should've said spent or invested. You can save by turning money into I bonds or stocks for retirement, and that works because it funds something productive (stocks/corp bonds) or the government would like you to defer consumption due to inflation (I…

You are making a lot of interesting arguments. Thanks!

> In nature you can't retire because you can't save up labor

That is true. What I can do, I guess, is ensure that I will have what I want in the future. If I don't know what I want, then I want to buy a small piece of everything (index funds).

> are better for retirement because they're riskier.

From the very article you linked: "Having no earnings and paying no coupons, rents or dividends, but instead representing stake in an entirely new monetary system of questionable potential, cryptocurrencies are undoubtedly the highest risk investment known to man."

Of course, here it seems Wikipedia is a bit opinionated, and gambling would be an even higher risk investment. But at that point I'm sure the risk-return relationship would break down.

The Kelly criterion is the optimal to size up how much risk to take over time. If there's even the slightest chance that losing a bet/investment will leave you with zero wealth, then you may not place all your wealth on that bet.

> Saving money/retiring in this way is kind of parasitic.

As some people save, others spend. As I mentioned with "Die with Zero", I will spend all my money eventually. If people do not synchronize their spending with the rest of the economy, the effects will average out, and one individual does not matter. Unfortunately, people tend to buy high and sell low, going on trends. And I've noticed both national and cryptocurrencies go through this - albeit with the interest rate mechanism, national currencies don't drop 80-90% from time to time.

> A fixed money supply doesn't make sense on a planet with an increasing population that all want to use your money because of how awesome the US financial empire is.

The world population is growing at around 1% per year, yet the money supply in the majority of countries grew by 13% (median): https://data.worldbank.org/indicator/FM.LBL.BMNY.ZG?most_rec...

The US, China and India are all above 10%.

> There was a Great Depression where people stopped being able to do that, you know.

You are right. I was exaggerating, because a bit of deflation doesn't hurt. Sever deflation does - as we're seeing right now in China also.

> It's not good to think about "the government spending beyond its means" as if it was a household.

And why not? Incurring debt will only impoverish future members of the "family". As interest rates rose, interest payments are about to exceed the military budget: https://edition.cnn.com/2022/11/01/economy/inflation-fed-deb...

As the population growth slows, or capital reaches diminishing returns as some other finite resource is depleted, it is only responsible to think of the economy as a household, and the money as a reflection of real, existing goods and services, rather than future ones, because future ones might not exist, and debt will become less "productive".

I distinguish between "productivity" of a debt and its yield. Taking on debt means signing up to pay future interest. But the resources you receive in exchange might make it worth paying interest, or might not. This is what I call "productivity" for lack of a better vocabulary. And interest rates or yields are orthogonal to this.

> The government's the one that invented the money in the first place.

The government merely partly captured the monetary velocity multiplier effect caused by fractional reserve.

Fractional reserve was invented by private banks, which create most of the money supply. In spite of their enormous power, and the enormous profits in fees and interest as a result of money creation, banks still go bankrupt by abusing their power, requiring bail-outs (with public money) or bail-ins (with depositors' money).

One such bail-out was immortalized in Bitcoin's first block ("The Times 03/Jan/2009 Chancellor on brink of second bailout for banks").

Khan Academy has a great course on fractional reserve: https://www.khanacademy.org/economics-finance-domain/macroec...

> And not only did the US fail to get inflation despite best efforts from ~1980-2020

In 1980-2020, the CPI went from 82.4 to 258.8, or a ~3.14-fold increase, or a 3.14^(1/40) ~= 2.9% compounded average growth rate. That is not failure to get inflation, it is overinflating by 45% compared to the 2% objective.

What we are seeing now (>10% inflation) is the result of irresponsible pandemic government budgets being mopped-up by the central banks.

By the way, PPP cost $170,000 to $257,000 per retained job-year. I bet employees on payroll during the pandemic were not paid that much.

https://www.investopedia.com/where-ppp-money-went-5216725

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

#849

Earlier quoted context omitted.

> Working fulltime in Rust now, but it's hard to find work there that isn't crypto-tainted. There's a whole bunch of ex-C++ devs who have shifted to Rust in this thread. The existing C++ jobs probably need to shift to Rust.

Immunant offers no-crypto remote Rust work. Send resume to team@immunant.com

Also for EU people?

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

#850

Earlier quoted context omitted.

system programming is a tough and low reward path indeed, be it in c/c++ or whatever. embedded/EE is worse. unless you made into the big few(google,amazon,meta,apple,microsoft,...), salary will plummet by half in general, or even more.

I have an EE background but worked in webdev for many years. I got pretty bored with webdev, and had the opportunity to get into embedded Rust development, so I did. Its been really awesome, learnt so much both in embedded but also hardware engineering. But now I think I'll head back to web development for my next job - I think web is better as an employee or as a contractor. It seems to me there is more freedom in w…

fully agree. rust links to its stdlib statically made its binaries too large for many embedded boards though, one reason I could not switch to it.

embedded is hard to get remote positions due to hardware involvements, which sucks. on a positive side, the job could be more secure sometimes, but then the low pay truly ruined everything, overall it remains to be negative.

Post reply on HN