Did a 3700X -> 5800x3D upgrade for a last gasp of AM4 and at this pace I'll probably wait till what zen 6? 7?
Did a 3700X -> 5800x3D upgrade for a last gasp of AM4 and at this pace I'll probably wait till what zen 6? 7?
If you're chasing FPS in AAA games it's not going to cut it, but it boots in seconds, loads apps quickly, plays streaming video perfectly...
For Rust and C++ compilation fast CPU/RAM/SSD makes a massive difference, so I'm always eager to upgrade to the latest and greatest.
That isn't a personal critique, even sounding like a perfectly rational decision, but if anyone here is working on a language (or any other software) of any popularity, it's worth keeping those sorts of negative second-order effects in mind.
Many interpreted languages consume easily upwards of 50x the energy at runtime...
My point is that the costs of those particular compiled languages is high enough that it's worth some additional investment in speed, regardless of the existence of interpreted languages.
Only if we are talking developer experience.
Even if you are working on something almost no-one uses. Spending a bit of time , or even hours, compiling, will be dwarfed by running more efficient code.
Just remember that there are billions of devices constantly (re)JITing Javascript code...
Developers of wasteful software, such as unoptimized compilers. It's not an absolute criticism, just a call-out to keep performance in mind because of second-order effects.
> even though it's unclear compilers could be much faster
You've used languages with substantially faster compilers, right? The majority of the rust compiler's runtime isn't the borrow checker. Standard C++ compilers don't fundamentally do anything beyond what other systems languages do.
> intrinsically leads to e-waste
It's not _intrinsic_, but somewhere around 1/3 of computers are re-used or recycled. Most people, when upgrading, have done so because they perceive their previous computer as unsatisfactory for their normal tasks, and most people don't have background work or servers or whatnot to make use of old computers. Toss in the re-sale value of $100-$200, and it's not worth the time and effort for a lot of people to re-sell or recycle. Yes, they should do better, but with that reality in mind you can easily construct a _correct_ causal model of "if I write slow, popular software then I there will be much more e-waste than if I had not done so."
It's also (very roughly) 1.3 million kwh per year extra for rust and cpp developers to use those slower compilers once a month, relative to faster alternatives. A few core maintainers have the power to fix that and have chosen not to.
And maybe that's fine. But it's a real cost, quite large relative to the other impact those individuals might have, and it's worth acknowledging rather than dismissing.
What do you mean by "faster alternatives"? There is only one Rust compiler, and all the C++ compilers are about equally fast. Do you mean languages that compile faster? Do you really think most projects can just be made in one language or another and it doesn't matter?
>A few core maintainers have the power to fix that and have chosen not to.
Nobody chooses to make inefficient software. First, there's only so many man-months in the month. Second, compilers are constantly evolving creatures. Optimizations, generally speaking, make software more difficult to maintain. What would you rather? A somewhat slow compiler that can optimize your code really well, or a compiler that runs really fast, but can only compile the language version from ten years ago and generates slow binaries because the maintainers can't work around the optimization redesign from fifteen years ago?
>And maybe that's fine. But it's a real cost, quite large relative to the other impact those individuals might have, and it's worth acknowledging rather than dismissing.
I think you're underestimating how complex modern compilers are. If people are dismissing your concerns it's because they understand that the price they pay for efficient programs is slow compilers.
C++ is an incredibly difficult to parse and complex language. This is by design, because the language has evolved over time and compatibility was preserved.
Also templates are incredibly expensive because of: 1. How compilation units work (modules fix this, but its taken decades to get here) 2. How complex they are, i.e. they're turing complete and recursively defined 3. Platform compatibility (read some STL code to see what I mean)
These things ARE fundamentally different from other systems languages. C doesn't have templates, and macros are glorified find replace. Go barely has generics, let alone higher-kinded types. Rust doesn't even have higher-kinded types (template templates).
And rust and Go are NEW, so they can go willy nilly with whatever syntax they want.
The slowest things are videos that lack hardware acceleration. These fancy new video encodings are a form of forced obsolescence IMO.
and code using C++ templates and new C++1x/2x features. And compilation in general because code base grows over time.
For casual users, a good test if it's time to upgrade is - has the CPU speed, the memory speed doubled? If not, for most people, it's better to keep your old device.
For competitive gamers, smaller gains make sense, but it gets expensive fast.
AMD has introduced several new 5000-series processors this year, including the 5700X3D that's basically a 5800X3D with slightly lower clock speed. They're not cutting off production of these parts any time soon.
It's kinda random for me: at some point I used a Core i7 6th-gen (6700 then replaced the 6700 with a 6700K: long story) for seven years, something insane like that.
Then got a 3700X, upgraded after a year or so to a 7700X and I'm now seriously considering the 9700X (for the lower TDP and +12% on single-core perfs and maybe, at long last, some ECC).
But then I did put a process in place: when I buy a new machine, my wife gets my old one (so she now has the 3700X) and my mother-in-law gets the old-old one (so she's got the 6700K atm).
Basically: I feel good about upgrading my machine because everybody gets a faster machine when I upgrade.
I'll probably add my daughter into the mix too.