Hacker News new | ask | show | jobs
by mysterydip 1 hour ago
The computing power available today is such a double-edged sword. We can do so much more so much faster, but then we (including myself in this) waste so many cycles on abstractions and frameworks and layers of libraries to make our development jobs easier.
10 comments

If the absurd memory prices might have some positive outcome, it will be consumers demanding that all their basic pack of apps are able to run on 16 and even 8 GB of RAM, by means of avooding those that hog their machines. And consequently (hopefully), developers and their managers being incentiviced by market forces to have a modicum of care for performance and not wasting bytes. Dreaming is free...

All Electron devs, let's go back to native-er toolkits! Qt and Slint are already here for proper FOSS apps, while a new generation of research and development on the field of efficient GUI toolkits would benefit us all so much.

To be fair to Apple, their best selling laptop runs on the same chip as their best selling phone, so they are rather surprisingly on the forefront of this efficiency in consumer-facing devices.

Not looked at Slint, thanks for the tip. Qt is OK-ish; things seem to improve on the Mac a lot beyond 6.8.

> but then we (including myself in this) waste so many cycles on abstractions and frameworks

"what Andy [Grove of Intel] giveth, Bill [Gates] taketh away."

* https://en.wikipedia.org/wiki/Andy_and_Bill%27s_law

The tradeoff isn’t dev job easy vs better performance. The abstractions allow devs to build faster or work on things users care about instead of unobservably better performance.
Oh, you mean those shitty Web UI frameworks with worse performance on modern hardware than native GUI programs from 1995?

Back then devs were not taking shortcuts, it was the C API or bust, and it very much shows how far we have regressed.

Oh no, the devs back then were for sure taking all the shortcuts they could, there just weren't as many ways to leave problems for the users compute to solve.
> instead of unobservably better performance

That's... quite the choice of words there

> instead of unobservably better performance.

It's imperceptible because the hardware has gotten so much faster. This would be like a top fuel dragster the size of a freight train.

The engine is incredibly powerful but the overall performance is hindered by the size of the overall vehicle not being optimized around it.

The problem Is when the performance problems becomes observable. Only after a specific scenario like low power mode for example
Which is such a capitalist lens to look at things through. Optimizing for a very small window of reality.

It's the same sort of optimization that drives behaviors where corporations feel no need to contribute to open-source projects. The same projects that enabled those very corporations to exist.

Sometimes abstractions make performance better too. We can’t all be experts of everything so using a well-optimized library is a boon.
Even beyond the library scope. I suspect most complaints in this regard are around electron/web tech, but a well developed modern C#/dotnet application is plenty fast for most use cases and you get the productivity of a high level GC language with it. Go has even a smaller footprint.

There's plenty of value in the abstractions. It didn't all start to break down until we collectively decided that javascript + chromium is the only way forward for literally everything.

It's interesting to contrast this with the attitude taken by the FFmpeg open source developers. They still hand write assembly code because performance and power efficiency is so critical that every clock cycle counts.

https://lexfridman.com/ffmpeg-transcript#chapter14_assembly_...

Yes, when you're used to using the modern web with all its bloat it can be a huge surprise when you build something in C or Rust - everyday computers are actually incredibly powerful.
Something being easier is not a waste, it’s literally the purpose of every technology.
not even that. you spend most cycles on thing you 1. don't want, 2. don't benefit from, 3. don't even know about.

your phone doesn't even need mention (whatsapp request the full contact list from the OS every minute. nobody knows that. google play service usea your phone as a WiFi scanner etc)

your browser churn proof of work every site you visit. cloudflare now probably waste more power than btc (and they don't save your site from bota, only set the bar at bots-willing-to-pay-to-run-canvas-fingerprints or something)

"What Andy Giveth, Bill Taketh Away"