The world could run on older hardware if software optimization was a priority
551–560 of 842 posts
Re: The world could run on older hardware if software optimization was a priority
#552Earlier quoted context omitted.
> The bounds only need to be checked once for a for loop, not on each iteration. This is a theoretical argument. It depends on the compiler being able to see that’s what you’re doing and prove that there is no other mutation. > abominations of C and C++ Sounds like you don’t understand the design choices that made this languages successful.
I understand the design choices and they're crap. Choosing a programming language shouldn't be a popularity contest.
Even so you haven't provided any compelling evidence that C or C++ made it's decisions to be more appealing or more popular.
Re: The world could run on older hardware if software optimization was a priority
#553Earlier quoted context omitted.
Don't forget the law of large numters. 5% performance hit on one system is one thing, 5% across almost all of the current computing landscape is still a pretty huge value.
It's about 5%. Cost of cyberattacks globally[1]: O($trillions) Cost of average data breach[2][3]: ~$4 million Cost of lost developer productivity: unknown We're really bad at measuring the secondary effects of our short-sightedness. [1] https://iotsecurityfoundation.org/time-to-fix-our-digital-fo... [2] https://www.internetsociety.org/resources/doc/2023/how-to-ta... [3] https://www.ibm.com/reports/data-breach
That's a fairly worthless metric. What you want is "Cost of cyberattacks / Revenue from attacked systems."
> We're really bad at measuring the secondary effects of our short-sightedness.
We're really good at it. There's an entire industry that makes this it's core competency... insurance. Which is great because it means you can rationalize risk. Which is also scary because it means you can rationalize risk.
Re: The world could run on older hardware if software optimization was a priority
#554Earlier quoted context omitted.
> Interpreted languages are now within a single digit multiple of natively compiled languages. You have to be either clueless or delusional if you really believe that.
Let me specify that what I'm calling interpreted (and I'm sure carmack agrees) is languages with a VM and JIT. The JVM and Javascript both fall into this category. The proof is in the pudding. [1] The JS version that ran in 8.54 seconds [2] did not use any sort of fancy escape hatches to get there. It's effectively the naive solution. But if you look at the winning C version, you'll note that it went all out pulling…
> a single digit multiple
By which you mean So not those Java -Xint, PHP, Ruby, Python 3 programs?
> interpreted
Roberto Ierusalimschy said "the distinguishing feature of interpreted languages is not that they are not compiled, but that any eventual compiler is part of the language runtime and that, therefore, it is possible (and easy) to execute code generated on the fly." [2]
[1] https://benchmarksgame-team.pages.debian.net/benchmarksgame/...
[2] "Programming in Lua" 1st ed p57
Re: The world could run on older hardware if software optimization was a priority
#555There is an argument to be made that the market buys bug-filled, inefficient software about as well as it buys pristine software. And one of them is the cheapest software you could make. It's similar to the "Market for Lemons" story. In short, the market sells as if all goods were high-quality but underhandedly reduces the quality to reduce marginal costs. The buyer cannot differentiate between high and low-quality g…
The dumbest and most obvious of realizations finally dawned on me after trying to build a software startup that was based on quality differentiation. We were sure that a better product would win people over and lead to viral success. It didn’t. Things grew, but so slowly that we ran out of money after a few years before reaching break even. What I realized is that lower costs, and therefore lower quality, are a compe…
Re: The world could run on older hardware if software optimization was a priority
#556There is an argument to be made that the market buys bug-filled, inefficient software about as well as it buys pristine software. And one of them is the cheapest software you could make. It's similar to the "Market for Lemons" story. In short, the market sells as if all goods were high-quality but underhandedly reduces the quality to reduce marginal costs. The buyer cannot differentiate between high and low-quality g…
The dumbest and most obvious of realizations finally dawned on me after trying to build a software startup that was based on quality differentiation. We were sure that a better product would win people over and lead to viral success. It didn’t. Things grew, but so slowly that we ran out of money after a few years before reaching break even. What I realized is that lower costs, and therefore lower quality, are a compe…
These companies often place a greater emphasis on reputation and legacy Very few and far between, Robert McNeel & Associates (American) is one that comes to mind (Rhino3D), as his the Dutch company Victron (power hardware)
The former especially is not known for maximising their margins, they don’t even offer a subscription-model to their customers
Victron is an interesting case, where they deliberately offer few products, and instead of releasing more, they heavily optimise and update their existing models over many years in everything from documentation to firmware and even new features. They’re a hardware company mostly so very little revenue is from subscriptions
Re: The world could run on older hardware if software optimization was a priority
#557Do I like bloat? No. Do I like more software rather than less? Yes! Unity and Unreal are less efficient than custom engines but there are 100x more titles because that tradeoff of efficiency of the CPU vs efficiency of creation.
The same is true for website based app (both online and off). Software ships 10x faster as a web page than as a native app for (windows/mac/linux/android/ios). For most, that's all I need. Even for native like apps, I use photopea.com over photoshop/gimp/krita/affinity etc because it's available everywhere no matter which machine I use or who's machine it is. Is it less efficient running in JS in the browser? Probaby. Do I care? No
VSCode, now the most popular editor in the worlds (IIRC) is web-tech. This has so many benefits. For one, it's been integrated into 100s of websites, so this editor I use is available in more places. It's using tech more people know so more extension that do more things. Also, probably arguably because of JS's speed issues, it encouraged the creation of the Language Server Protocol. Before this, every editor rolled their own language support. The LSP is arguably way more bloat than doing it directly in the editor. I don't care. It's a great idea, way more flexible. Any language can write one LSP and then all editors get support for that language.
Re: The world could run on older hardware if software optimization was a priority
#558Re: The world could run on older hardware if software optimization was a priority
#559Earlier quoted context omitted.
As someone who routinely hops between WiFi networks, I've never seen a wrong value here. And OK, we'll draw a tile with all the buttons with greyed out status for that half second and then refresh to show the real status. Did that really make things better, or did it make it worse? And if we bothered keeping all that in memory, and kept using the CPU cycles to make sure it was actually accurate and up to date on the…
Rendering a volume slider or some icons shouldn't take half a second, regardless. e.g. speaking of Carmack, Wolfenstein: Enemy Territory hits a consistent 333 FPS (the max the limiter allows) on my 9 year old computer . That's 3 ms/full frame for a 3d shooter that's doing considerably more work than a vector wifi icon. Also, you could keep the status accurate because it only needs to update on change events anyway, e…
It's like how Wi-Fi drivers would cause lag from querying their status, lots of poorly designed drivers and archaic frameworks for them to plug in.
And I doubt any hardware you had when Wolfenstein:ET came out rendered the game that fast. I remember it running at less than 60fps back in '03 on my computer. So slow, poorly optimized, I get better frame rates in Half Life. Why would anyone write something so buggy, unoptimized, and slow?!
Re: The world could run on older hardware if software optimization was a priority
#560Earlier quoted context omitted.
Rendering a volume slider or some icons shouldn't take half a second, regardless. e.g. speaking of Carmack, Wolfenstein: Enemy Territory hits a consistent 333 FPS (the max the limiter allows) on my 9 year old computer . That's 3 ms/full frame for a 3d shooter that's doing considerably more work than a vector wifi icon. Also, you could keep the status accurate because it only needs to update on change events anyway, e…
It's not the drawing an icon to a screen that takes the half second, it's querying out to hardware on driver stacks designed for PCI WiFi adapters from the XP era along with all the other driver statuses. It's like how Wi-Fi drivers would cause lag from querying their status, lots of poorly designed drivers and archaic frameworks for them to plug in. And I doubt any hardware you had when Wolfenstein:ET came out rende…
IIRC it ran at 76 fps (higher than monitor refresh, one of the locally optimal frame rates for move speed/trick jumps) for me back then on something like an GeForce FX 5200? As long as you had a dedicated GPU it could hit 60 just fine. I think it could even hit 43 (another optimal rate) on an iGPU, which were terrible back then.
In any case, modern software can't even hit monitor refresh latency on modern hardware. That's the issue.