Live data from Hacker News

Software Disenchantment (2018)

tonsky.me

421–430 of 504 posts

Re: Software Disenchantment (2018)

#421
I can imagine how many software products come get to this state. At some point someone makes a poor design decision, and that sets a precedent. Or programmers can't be bothered to clean up and refactor their code, and it adds over time.

But the best explanation for why this problem persists even in teams of proficient engineers that I have seen comes from the 2005 GDC Keynote from John Carmack [1].

> I can remember clearly in previous projects thinking [...] I've done a good job on all of this but wouldn't it be nice if I could sit back and really clean up the code, perfect the interfaces, and you know, just do a wonderful nice craftsman job [...] interestingly this project I've had the time to basically do that and I've come to the conclusion that it sort of sucks [...] there's a level of craftsman satisfaction that you get from trying to do what you do at an extreme level of quality and one thing that I found is that's not really my primary motivation [...] that's not what's really providing the value to your end-users [...] you can sit back and I am do a really nice polishing job it's kind of nice but it's not the point of maximum leverage and I found.

So, as others have mentioned here, there is a threshold where extra performance provides less value to the project than, say, an extra feature.

It seems that in some cases we have crossed that threshold and some software has become comically bloated. I attribute the reason why these are not solved to the same reasoning. Refactoring an existing project to reduce the bloat would take too much time and effort from one single developer, that could be used somewhere else, although in the end everyone would benefit from it. So you are better off adding stuff to the dumpster fire and moving on.

It's sort of a tragedy of the commons [2] of software performance.

[1] https://youtu.be/N0auhzHZe5k?t=1015

[2] https://en.wikipedia.org/wiki/Tragedy_of_the_commons

Re: Software Disenchantment (2018)

#422

Earlier quoted context omitted.

I'll gladly name names. Apple have totally forgotten how to test and assure software against what appear to be even stupid bugs. macOS Catalina has been fraught with issues ranging from the minor to the ridiculous. Clearly nobody even bothered to test whether the Touch Bar "Spaces" mode on the MacBook Pro 16" actually works properly before shipping the thing. Software updates sometimes just stop downloading midway th…

> My question is who is testing this stuff? Telemetry. Companies seem to be increasingly preferring to use invasive telemetry and automated crash reports in lieu of actual in-house testing, and they use that same telemetry to also prioritize work. I have a strong suspicion that this is a significant contributing factor to the absurdities and general user-hostility of modern products.

I'm in complete agreement. Thanks to automated crash report uploading, the software I use is more stable than ever — it's a genuine surprise to me when an application crashes, and I can't remember the last time I had to reboot because my OS froze.

But this means that anything that's not represented in telemetry gets completely ignored. The numbers won't show you how many of your users are pissed off. They won't alert you to the majority of bugs. They won't tell you if you have a bloated web application that's stuffed full of advertising. They won't tell you if your UI is incoherent.

I really do think that large companies are looking at the numbers instead of actually using their software, and the numbers say that everything's fine.

Re: Software Disenchantment (2018)

#423
So we really need to blame the developers of all the (free) libraries we use for not optimising them to the nth degree so our code doesn't become bloated...

No one's forcing you to use a library. But if you do they come with tradeoffs.

OK, things are slow and buggy. But we've got lots more things thanks to all the productivity we've gained from using libraries, etc. That means we collectively solve more problems for more people.

Purism is a nice idea, but ultimately probably not worth the effort until things become so bad that they are, and at that point become a differentiator. I mean, I don't care if a web page is twice the size of Windows 95 because my computer is way faster than a 486.

Re: Software Disenchantment (2018)

#424
post #20

> Would you buy a car if it eats 100 liters per 100 kilometers? How about 1000 liters? I think the analogy here is backwards. The better question is "how much would you prioritize a car that used only 0.05 liters per 100km over one that used 0.5? What about one that used only 0.005L?". I'd say that at that point, other factors like comfort, performance, base price, etc. become (relatively) much more important. If bas…

I wonder how this trend will be affected by the slowing of Moore’s law. There will always be demand for more compute, and until now that’s largely been met with improvements in hardware. When that becomes less true, software optimization may become more valuable.

Re: Software Disenchantment (2018)

#425
post #422

Earlier quoted context omitted.

> My question is who is testing this stuff? Telemetry. Companies seem to be increasingly preferring to use invasive telemetry and automated crash reports in lieu of actual in-house testing, and they use that same telemetry to also prioritize work. I have a strong suspicion that this is a significant contributing factor to the absurdities and general user-hostility of modern products.

I'm in complete agreement. Thanks to automated crash report uploading, the software I use is more stable than ever — it's a genuine surprise to me when an application crashes, and I can't remember the last time I had to reboot because my OS froze. But this means that anything that's not represented in telemetry gets completely ignored. The numbers won't show you how many of your users are pissed off. They won't alert…

Indeed. The way I've been summing it up recently: A/B testing is how Satan interacts with this world.

It's understandable people want to base their decisions off empirical evidence. But it's important to remember that what you measure (vs. what you don't measure) and how you measure will determine the path you're going as much as the results of these measurements.

Re: Software Disenchantment (2018)

#426
post #28

I'm so weary of this moral panic we've been having. There are so many other factors to be weighed against efficiency when it comes to making software. There are completely legitimate tradeoffs to be made that sacrifice performance. There are also programmers who write bad code on all dimensions - performance included - out of sheer laziness. But those aren't the primary cause of this hardware "waste". Demanding effic…

The thing is people are not looking at the less visible stuff hidden in scope. A mere fraction of a second increase in the time you don't have to wait after klicking something? Barely noticeable. Perfectly usable. Hardly worth the time investment to improve... after all that dev's expensive and then that button or whatever gets used by countless people. That fraction of a second ends up actually being numerous lifetimes.

And as it's surrounded by numerous such "slightly inefficient but efficient from some other perspective" interactions overall efficiency dies a death of a thousand cuts.

When you actively start paying attention to it and comparing it to little examples of what could be you start noticing how utterly garbage everything is. Even at the base level in things that have a massive userbase and that are used not just once in a while but constantly it's disgusting trash. I look around at the company i work at. They're all using it and probably not noticing at all but the fucking file explorer in Windows is slow as fuck as is countless other elements and interactions of it. The companies website so simple in it's content and functionality and is made by a webdev agency but is a bloated mess that takes a while to get to....a logo that shows whilst it continues to load. The software my coworker wrote is small scale and he said i was wasting a lot of my time making some small action faster not recognising that it's been used many thousand times a day every day for more than 10 years now.

There's way too little moral panic

Re: Software Disenchantment (2018)

#427
post #88

Earlier quoted context omitted.

He hints at Electron in the end, but I think the real blame lies on React which has become standard in the past five years. Nobody has any fucking idea what’s going on in their react projects . I work with incredibly bright people and not a single one can explain accurately what happens when you press a button. On the way to solving UI consistency it actually made it impossible for anyone to reason about what’s happe…

React is super simple - I could implement same API from memory so I don't think it's the root of the problem. > Nobody Speak for yourself

I take it you’re thinking of virtual DOM only, which is not the problem, or the component class which hides all of the details.

React is huge, it’s unlikely you’ll implement the synthetic events, lifecycle hooks, bottom up updates, context, hooks with their magical stacks, rendering “optimizations” and all of react-specific warts.

There are simple reimplementations like hyperapp and preact and I completely recommend using those instead. I really meant React the library and ecosystem are at fault, not the general model.

Re: Software Disenchantment (2018)

#428
I understand what the author is saying but it sounds like wanting tech for tech's sake. If the user doesn't care, then does it matter that sites are slower? And if it matters, why hasn't someone come along and done something better like the author suggests? Surely this trend in tech performance has been going on for so long that someone could be doing something about it?

Re: Software Disenchantment (2018)

#429

Earlier quoted context omitted.

You are thinking too small, with a car generating power that cheaply you could use it to power a turbine and provide cheap electricity to the entire world. It would fix our energy needs for a very long time and it would usher a new age!

Or the car could just be very efficient. Gasoline has a lot of energy. Transporting a person 100km on 34MJ/l * 0.05l =1.71MJ doesn't sound as impossible as you make it seem.

Trains transports at 0.41 MJ/t·km. If the person weights 0.1t it would take a train packed full of people 41MJ per person to transport them 100km, or a bit more than one litre of gasoline. I don't think it is possible to go significantly below that without transporting them on mag rails or vacuum pipes.

Secondly we talked about 0.005l cars, not 0.05l, so it would be a few hundreds times more efficient than train transportation.

Re: Software Disenchantment (2018)

#430

Earlier quoted context omitted.

I mean... considering the fact that in contains the probabilities of typing every single word in the English language versus every other, at every stage of typing, including potentially the probabilities of all the ways you might mistype each word while swiping without precise accuracy... ...maybe? I don't know if that's 150 MB' worth of data... but it's certainly a lot.

So why is it persistently, perniciously and stubbornly insistent in refusing to spell 'naughty' words like 'duck'?

What's the problem again? I just typed "duck" by swiping. If you mean the "i" variant, be informed that swear words are blocked unless a preference is set.
Post reply on HN