Comment by AndrewDucker

3 days ago

Well, yes. It's an economic problem (which is to say, it's a resource allocation problem). Do you have someone spend extra time optimising your software or do you have them produce more functionality. If the latter generates more cash then that's what you'll get them to do. If the former becomes important to your cashflow then you'll get them to do that.

I think you’re right in that it’s an economics problem, but you’re wrong about which one.

For me this is a clear case of negative externalities inflicted by software companies against the population at large.

Most software companies don’t care about optimization because they’re not paying the real costs on that energy, lost time or additional e-waste.

  • Is there any realistic way to shift the payment of hard-to-trace costs like environmental clean-up, negative mental or physical health, and wasted time back to the companies and products/software that cause them?

It's the kind of economics that shifts the financial debt to accumulating waste, and technical debt, which is paid for by someone else. It's basically stealing. There are --of course-- many cases in which thorough optimizing doesn't make much sense, but the idea of just adding servers instead of rewriting is a sad state of affairs.

  • It doesn't seem like stealing to me? Highly optimised software generally takes more effort to create and maintain.

    The tradeoff is that we get more software in general, and more features in that software, i.e. software developers are more productive.

    I guess on some level we can feel that it's morally bad that adding more servers or using more memory on the client is cheaper than spending developer time but I'm not sure how you could shift that equilibrium without taking away people's freedom to choose how to build software?

    • I feel like the argument is similar to that of all corporate externality pushes.

      For example "polluting the air/water, requiring end-users to fill landfills with packaging and planned obscolescence" allows a company to more cheaply offer more products to you as a consumer.. but now everyone collectively has to live in a more polluted world with climate change and wasted source material converted to expensive and/or dangerous landfills and environmental damage from fracking and strip mining.

      But that's still not different from theft. A company that sells you things that "Fell off the back of a truck" is in a position to offer you lower costs and greater variety, as well. Aren't they?

      Our shared resources need to be properly managed: neither siphoned wastefully nor ruined via polution. That proper management is a cost, and it either has to be borne by those using the resources and creating the waste, or it is theft of a shared resource and tragedy of the commons.

  • > It's basically stealing.

    This is exactly right. Why should the company pay an extra $250k in salary to "optimize" when they can just offload that salary to their customers' devices instead? The extra couple of seconds, extra megabytes of bandwidth, and shittery of the whole ecosystem has been externalized to customers in search of ill-gotten profits.

    • It's like ignoring backwards compatibility. That is really cheap since all the cost is pushed to end-users (that have to relearn the UI) or second/third-party developers (that have to rewrite their client code to work with a new API). But it's OK since everyone is doing it and also without all those pointless rewrites many of us would not have a job.

      1 reply →

    • > has been externalized to customers in search of ill-gotten profits.

      'Externality' does not mean 'thing I dislike'. If it is the customers running the software or waiting the extra couple of seconds, that's not an externality. By definition. (WP: "In economics, an externality is an indirect cost (external cost) or benefit (external benefit) to an uninvolved third party that arises as an effect of another party's (or parties') activity.") That is just the customers picking their preferred point on the tradeoff curves.

  • > It's basically stealing

    This feels like hyperbole to me. Who is being stolen from here? Not the end user, they're getting the tradeoff of more features for a low price in exchange for less optimized software.

    • From what I’m seeing people do on their computers, it barely changed from what they’ve been doing on their pentium 4 one. But now, with Electron-based software and the generals state of Windows, you can’t recommend something older than 4 years. It’s hard to not see it as stealing when you have to buy a 1000+ laptop, when a 400 one could easily do the job if the software were a bit better.

      2 replies →

    • It’s only a tradeoff for the user if the user find the added features useful.

      Increasingly, this is not the case. My favorite example here is the Adobe Creative Suite, which for many users useful new features became far and few between some time ~15 years ago. For those users, all they got was a rather absurd degree of added bloat and slowness for essentially the same thing they were using in 2010. These users would’ve almost certainly been happier had 80-90% of the feature work done in that time instead been bug fixes and optimization.

      1 reply →

  • would you spend 100 years writing the perfect editor optimizing every single function and continueously optimizing and when will it ever be complete? No you wouldn't. Do you use python or java or C? Obviously, that can be optimized if you wrote in assembly. Practice what you preach, otherwise you'd be stealing.

  • Not really stealing. You could off course build software that is more optimized and with the same features but at a higher cost. Would most buyers pay twice the price for a webb app that loads in 1 sec instead of 2? Probably not.

    • Try loading slack and youtube on a 4 year old laptop. It’s more in the 10s, and good luck if you only have 8GB of ram.

> Do you have someone spend extra time optimising your software or do you have them produce more functionality

Depends. In general, I'd rather have devs optimize the software rather than adding new features just for the sake of change.

I don't use most of the new features in macOS, Windows, or Android. I mostly want an efficient environment to run my apps and security improvements. I'm not that happy about many of the improvements in macOS (eg the settings app).

Same with design software. I don't use most of the new features introduced by Adobe. I'd be happy using Illustrator or Photoshop from 10 years ago. I want less bloat, not more.

I also do audio and music production. Here I do want new features because the workflow is still being improved but definitely not at the cost of efficiency.

Regarding code editors I'm happy with VSCode in terms of features. I don't need anything else. I do want better LSPs but these are not part of the editor core. I wish VSCode was faster and consumed less memory though.

Efficiency is critical to my everyday life. For example, before I get up from my desk to grab a snack from the kitchen, I'll bring any trash/dishes with me to double the trip's benefits. I do this kind of thing often.

Optimizing software has a similar appeal. But when the problem is "spend hours of expensive engineering time optimizing the thing" vs "throw some more cheap RAM at it," the cheaper option will prevail. Sometimes, the problem is big enough that it's worth the optimization.

The market will decide which option is worth pursuing. If we get to a point where we've reached diminishing returns on throwing hardware at a problem, we'll optimize the software. Moore's Law may be slowing down, but evidently we haven't reached that point yet.

Ultimately it's a demand problem. If consumer demands more performant software, they would pay a premium for it. However, the opposite is more true. They would prefer an even less performant version if it came with a cheaper price tag.