Live data from Hacker News

The world could run on older hardware if software optimization was a priority

twitter.com

551–560 of 842 posts

Re: The world could run on older hardware if software optimization was a priority

#552

Earlier 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.

There are inevitably those who don't know how to program but are responsible for hiring those that can. Language popularity is an obvious metric with good utility for that case.

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

#553
post #25

Earlier 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

> Cost of cyberattacks globally[1]: O($trillions)

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

#554

Earlier 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…

fwiw There are a few naive un-optimised single-thread #8 n-body programs transliterated line-by-line literal style into different programming languages from the same original. [1]

> 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

#555
post #217
post #91

There 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…

[deleted]

Re: The world could run on older hardware if software optimization was a priority

#556
post #217
post #91

There 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…

I’d argue this exists for public companies, but there are many smaller, private businesses where there’s no doctrine of maximising shareholder value

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

#557
Sorry, don't want to go back to a time where I could only edit ASCII in a single font.

Do 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

#558
This is Carmack's favorite observation over the last decade+. It stems from what made him successful at id. The world's changed since then. Home computers are rarely compute-bound, the code we write is orders of magnitude more complex, and compilers have gotten better. Any wins would come at the cost of a massive investment in engineering time or degraded user experience.

Re: The world could run on older hardware if software optimization was a priority

#559

Earlier 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 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 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

#560

Earlier 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…

You don't need to query the hardware to know the network interface is up. A higher level of the stack already knows that along with info like addresses, routes, DNS servers, etc.

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.

Post reply on HN