Live data from Hacker News

Maybe people do care about performance and reliability

buttondown.email

261–270 of 280 posts

Re: Maybe people do care about performance and reliability

#261
post #133

Seconds matter an awful lot to me. If things don't happen fast enough, I end up alt-tabbing to the browser, losing my train of thought, and perhaps wasting a few minutes browsing the web. I also work semi-offline a lot. My current internet connection is roughly 100 KBps. The connection in the underground isn't much better. I also work in airports and hotels. These pages that take 10+ seconds to load end up being aban…

Would you wait for 15 to 20 seconds for an SPA to load, if it's guaranteed to work faster during usage, or have it load in 1 second but be slower while using it?

It depends on where those 15 seconds fit. If I have to hold onto some thought for 15 seconds, forget it. If I'm loading an IDE or some other tool I'll use all day, it's fine.

My bookkeeping software has lots of 1 second delays and it's really annoying.

Re: Maybe people do care about performance and reliability

#262
post #15

The idea that software wasn't bloated and slow 20,30+ years ago is just myth. Everything was bloated and slow. MS Word in the 90s and 00s would regularly crash and take your file with you, and it often took minutes to start up. Yes, there were some brilliant counterexamples, just as there are today. But most software today is far more enjoyable and rapid to use than that from previous eras. While the software isn't a…

> MS Word in the 90s and 00s would regularly crash and take your file with you, It's an old joke at this point that you can tell when a person first became a serious computer user based on how frequently they save their work. My muscle memory for ctrl+s is so ingrained that I type it every minute or two in things like Google Docs that literally ignore it.

This explains everything.

Re: Maybe people do care about performance and reliability

#263
post #24

At my previous job I was given permission to fully rewrite the call centre script/tooling used by sales agents. I also came from that team, and took a quick detour to the data team before finally landing in a development role. Giving me a full understanding of not only the agents needs and wants, but the limits on data being fed into this system. The resulting page loaded 10 times faster than what it replaced, which…

Great story, but I think the last sentence can lead people to wrong conclusions. It sounds to me like you spent more than 3 days on it. A crucial part of what you did, IMO, was to figure out what's needed, how you could do it, and then convincing people it's worth doing.

Re: Maybe people do care about performance and reliability

#264
post #259

Earlier quoted context omitted.

What makes SAP secure? Nothing, inherently. What makes SAP secure is that a lot of IT organizations have experience with setting it up, and know enough about its pitfalls to avoid them. With a new product, IT is going to have figure out the security pitfalls (hopefully by reading documentation, but more likely through testing, hopefully not through breaches). If, as the grandparent post indicates, the product was set…

To your point: I remember going to our IT security people asking for them to allow us to add Python to our computers. We said, "there's nothing in Python that Excel can't do" (not 100% true). Their response was, "If we could prohibit everyone from using Excel, that would be our preference too."

Given how many times they must've been burned by end users opening infected Microsoft Office documents, can you really blame them?

Re: Maybe people do care about performance and reliability

#265
post #94

Earlier quoted context omitted.

> Annoyance: they were in charge of acquiring and rolling out the software the factories used! Why were the floor managers demanding that they integrate our software? What do they know about software, enterprise contract negotiation, etc!? How dare they! Ok, so this one I actually kind of agree with. Too many times I was in a position where a bunch of decisions were made about software or hardware, and then IT was br…

Having worked both sides of this, it's generally the case that IT is absolutely terrible at their job that ends up with them getting called in late.

A low-trust environment is exhausting for everyone, and a difficult pit to climb out of.

Re: Maybe people do care about performance and reliability

#266
post #88
post #15

Earlier quoted context omitted.

> MS Word in the 90s and 00s would regularly crash and take your file with you, It's an old joke at this point that you can tell when a person first became a serious computer user based on how frequently they save their work. My muscle memory for ctrl+s is so ingrained that I type it every minute or two in things like Google Docs that literally ignore it.

To this day I always copy comments to the clipboard before submitting them or after I feel like I've put a lot of work into them -- owing to dubious browser UI[2] c. 2000, where e.g. you might accidentally lose focus of the text field, and then the backspace button would navigate backwards[1] and lose everything you had typed up. So my muscle memory is a lot of ctrl-a, c. [1] A mistake that Chrome adopted afterward a…

Still possible to lose data in the modern dubious UI on the web, so you could an extension like GhostText and type comment in a regular text editor where you. get recovery for free even if both apps crash

Re: Maybe people do care about performance and reliability

#267

Earlier quoted context omitted.

Another reason that people often overlook is security. Even if each individual software product has a good security model, differences in the way they interact can lead to security vulnerabilities and opportunities for attackers to move laterally through a network. In the case above, it may be that IT knows how to integrate SAP with their Active Directory system in a manner that ensures that users have access to the…

Security is important. What makes SAP secure? I personally found errors in customer systems. And at the time even Microsoft couldn’t implement OAuth2 correctly with regards to the specifications… which is no surprise given how often it had to be amended. A good deal of “security,” even in the enterprise, is a lot of theatre and show boating. Write a formal specification and throw it at a model checker and you’ll prob…

This was a lesson I learned very recently.

As a dev, I think about security in terms of exploits and making sure software doesn't have them (as well as having features required to implement user/data policies).

An IT person thinks about policies too but for them security is primarily about tools. If a piece of software will work behind their firewall and IDS, integrate with their monitoring software and Active Directory, export reports in the format this or that other tool needs, then it's secure from their perspective.

It makes sense when you think about it, and actually allows for a fair bit of freedom once you understand the boundaries. What is unfortunate is all the time I wasted gathering pen-test reports and all kinds of other junk when that wasn't the real problem at all.

Re: Maybe people do care about performance and reliability

#268
post #57

Earlier quoted context omitted.

My IDE auto-saves as you make changes, yet I still mash ctrl+s frequently. I think it's mostly games that gave me the habit though. PC gaming has always been a gauntlet.

> My IDE auto-saves as you make changes This gave me shutters. Maybe it is some sort of manual transmission-type feeling of control, but that is terrifying to me. Something about that feeling of owning when the source file is changed.

I felt the same way, but there are three layers of defense for me, in order: robust undo, git commits, and the IDE maintains a history of its own with a certain number of revisions back in time.

Re: Maybe people do care about performance and reliability

#269
post #232

Earlier quoted context omitted.

Some of the complexity is, unfortunately, introduced by grugs, because complexity smarter than grug and sometimes pretend is simple. Couple months back, I read an article that made a bold claim: that the old wisdom saying most software is IO-bound stopped being true some time ago; instead, most software nowadays is CPU-bound, typically on parsing JSON. JSON is something that may seem simple to grug, particularly a we…

What are you suggesting instead? A protocol change like protobuf for example? Or an architecture change (send less data in the first place)? Just wondering what a more complex but better solution would look like in this example.

Either, both, or more. It's situational.

Switch to protobuf. Or switch to CSV. Or switch to SQLite database files. Or stay with JSON, but reduce the complexity of the format, even if it means you need a post-processing step on your side[0]. Change overall design to do less back-and-forth. Batch requests and replies. Send just the required amount of information, instead of having the receiver discard 95% of the reply every time. Don't convert to JSON (or other ad-hoc stringly-typed serialization format) and back from it inside your own application process, just because it feels "simpler" than using a data structure[1]. Etc.

I get why people like using JSON protocols, even defaulting to it for ad-hoc ones. I do that too! It's the local optimum for protocol development[2]. JSON protocols are easy to extend and easy to debug. It's a good starting point when your protocol is in total flux. At some point, however, the protocol mostly solidifies. It should then be revisited and tightened up a bit.

The main benefit is of course performance. Even if the refactor can't simplify the architecture of your project (e.g. no possibility to batch things or reduce amount of places that do communication), what grugs often miss is that performance improvements alone can reduce complexity.

The canonical case here is scaling: switching from single-process to a scalable distributed solution is a massive jump in complexity. Keeping an eye on performance and removing (or avoiding) waste introduced for the sake of "simplicity" or development velocity will delay the point at which you need to switch to distributed solution. A little up-front cleverness and complexity now, plus a little spend to beef up your servers, may delay the switch forever. Computers are fast, we're just not using it, and grugs seeking simplicity by gradient descent and sleep-walking into high-complexity regions of solution space are partly to blame here.

--

[0] - I still shudder when I think back to a certain charting tool in the browser, that required on the text input side to be supplied with datapoints in the format:

  [{x: 42, y: 100}, {x: 43, y: 64}, ...]
Maybe this is because it matched the internal representation (if so, I do have some thoughts about it too). But doing it like:

  {x: [42, 43, ...], y: [100, 64, ...]}
or:

  [[42, 100], [43, 64], ...]
would easily cut the input size by 50% or more, meaning that much less work for the parser in the library and the serializer generating the input text. This shorter format is arguably more human-readable too!

[1] - Sounds stupid, but I've seen this happen in otherwise sophisticated and somewhat performance-sensitive codebases. Beyond the waste coming from most of your data being passed around in pseudo-JSON strings, converted to various scalar and array types at the point of use and then serialized back, it leads to surprising amount of subtle bugs - especially when people manipulate the serialized format manually, because it's again "simpler" this way.

[2] - Every programming language these days has good JSON support built-in or easily available, it's hierarchical without footguns (c.f. YAML), it's plaintext and has good editor support, but still relatively compact (c.f. XML), it's malleable, it's browser-native, etc.

Re: Maybe people do care about performance and reliability

#270

Earlier quoted context omitted.

How bloated software can become is limited by available hardware resources. 20-30 years ago typical RAM size / CPU core count where much smaller than nowadays. If you run desktop software written 20 years ago on modern hardware it would work much faster than modern desktop software with comparable functions (not always, but quite often). But I'd agree that there was plenty bloated software which run slow on hardware…

> with comparable functions (not always, but quite often). Is that really the case? Are 2010 skype and 2022 discord comparable in terms of functionality? Are 2000 winamp and 2022 spotify app comparable? Todo app 15 years ago was a simple CRUD app. Today todo app has to do CRUD, sync, offline mode, public API, integrations with popular services, collaborative projects and support 6 platforms. People whine about bloate…

> Are 2000 winamp and 2022 spotify app comparable?

In my opinion - yes. Most of what Spotify provides implemented in the cloud (on server side). Client is a UI to select and stream music. Winamp supported music streaming to but didn't have an advanced UI to select what to stream. I see no fundamental reasons why a desktop app for Spotify should use much more resources. Given open API it should be possible to make a Spotify plugin for Winamp.

I haven't used Spotify desktop app but can guess it is written using electron or something like that and this is the main reason it uses much more RAM/CPU than Winamp, not because it does more work.

Post reply on HN