28 ms·
> who I'm criticizing Developers of wasteful software, such as unoptimized compilers. It's not an absolute criticism, just a call-out to keep performance in mi
by hansvm 2y ago
> who I'm criticizing
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."
- fluoridation 2y agoSure, but developers, and especially C++ and Rust developers, make up a small minority of the total market. The general statement "most people will throw in the garbage their old computer when buying a new one" may not apply in general to such an unusual subset. Like I said, it doesn't apply to me, and I've upgraded specifically to get better build times.
- hansvm 2y agoSure. It might apply more though, with the cost/benefit analysis strongly favoring fast actions rather than good actions for high-paid professionals too. We have some data suggesting e-waste is a problem. Maybe it's 10% in that demographic. That's still a 10k computers in the dump, purely because of slow Rust and C++ compile times, even if only 1% of people upgraded because of compile times and 10% of that demographic aren't responsible with their devices. 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.
- fluoridation 2y ago>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. 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.
- consteval 2y ago> Standard C++ compilers don't fundamentally do anything beyond what other systems languages do. 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.