Hacker News new | ask | show | jobs
by TheEnder8 3225 days ago
This keeps coming up every couple of years, but is just wrong.

In the last 5-10 years, there hasn't been almost increase in requirements. People can use low-power devices like Chromebooks because hardware has gotten better/cheaper but software requirements haven't kept up. My system from 10 years ago has 4gb of ram - that's still acceptable in a laptop, to say nothing of a phone.

If you're going to expand the time horizon beyond that, other things need to be considered. There's some "bloat" in when people decide they want pretty interfaces and high res graphics, but that's not a fair comparison. It's a price you pay for a huge 4k monitor or a retina phone. Asset sizes are different than software.

I won't dispute that the trend is upward with the hardware that software needs, but this only makes sense. Developer time is expensive, and optimization is hard. I just think that hardware has far outpaced the needs of software.

2 comments

> Developer time is expensive, and optimization is hard.

In the case of front-end development also "Developer time is paid by the company while hardware is paid by the users."

This is basically a nicer way to put the "lazy developers" point from the article, but I think that's actually important.

The problem is that this seems to create all sorts of anti-patters where things are optimized for developer-lazyness at the expense of efficiency. E.g., adding a framework with layers of JavaScript abstraction to a page that shows some text - after all, the resources are there and it's not like they could be used by something else, right?

There are many kinds of efficiency, and some of them matter more than others.

We as a society have voted with our wallets that yes, we really really want a process that is efficient on creating more features within the same amount of developer-time instead of a process that creates more computationally efficient features.

The increased hardware capacity has been appropriately used - we wanted a way to develop more software features faster, and better hardware has allowed us to use techniques and abstraction layers that allow us to do that, but would be infeasible earlier because of performance problems.

It's not an anti-pattern that occurred accidentally, it accurately reflects our goals, needs and desires. We intentionally made a series of choices that yes, we'd like a 3% improvement in the speed&convenience of shipping shiny stuff at the cost of halving the speed and doubling memory usage, as long as the speed and resource usage is sufficient in the end.

And if we get an order of magnitude better hardware after a few years, that's how we'll use that hardware in most cases. If we gain more headroom for computational efficiency, then we've once again gained a resource that's worthless as-is (because speed/resource usage was already sufficiently good enough) but can be traded off for something that's actually valuable to us (e.g. faster development of shinier features).

There is a cost to the company for non performant front end code though. If the front end preforms poorly users are less likely to use it.
If that were the case, I think there wouldn't be that much discussion about the "website obesity crisis". E.g., see this post from another thread: https://news.ycombinator.com/item?id=15028741
Users who aren't using an up-to-date phone are probably not an audience websites are likely to make money from. If a website's performance isn't "good enough" on a modern phone, that will hurt the site.

Dark thought: maybe sites actually profit from a certain level of "bloat", if it drives away less lucrative visitors while not affecting the demographics that are most valuable to advertisers.

I don't disagree, but the counter is also true. If the developers didn't care about front end performance there wouldn't books on the topic.
I have a 2015 Toshiba Chromebook - 4GB RAM, 1.7GHz Celeron I think - and while it's fine for a lot of things, browsing the 'modern' web on it is so painful.

Sites cause the UI to hang for seconds at a time. Switching between tabs can take an age. Browse to some technology review site and you sit and wait for 10 seconds while the JS slowly loads a "please sign up for our newsletter" popover.

Funny how these things vary. I've got a 2013 macbook, 4GB RAM, 1.3GHz processor and everything is snappy. Good SSD and OSX I guess.
Intel's naming is confusing, but I think the Celeron is an Atom-based N2840, roughly 30-50% of the performance of that MacBook.