this post was submitted on 24 Jul 2023
64 points (89.0% liked)
Programming
17373 readers
173 users here now
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Rules
- Follow the programming.dev instance rules
- Keep content related to programming in some way
- If you're posting long videos try to add in some form of tldr for those who don't want to watch videos
Wormhole
Follow the wormhole through a path of communities [email protected]
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
It's a cathartic, but not particularly productive vent.
Yes, there are stupid lines of
time.sleep(1)
written in some tests and codebases. But also, there are testsetUp()
methods which do expensive work per-test, so that the runtime grew too fast with the number of tests. There are situations where there was a smarter algorithm and the original author said "fuck it" and did the N^2 one. There are container-oriented workflows that take a long time to spin up in order to run the same tests. There are stupid DNS resolution timeouts because you didn't realize that the third-party library you used would try to connect to an API which is not reachable in your test environment... And the list goes on...I feel like it's the "easy way out" to create some boogeyman, the stupid engineer who writes slow, shitty code. I think it's far more likely that these issues come about because a capable person wrote software under one set of assumptions, and then the assumptions changed, and now the code is slow because the assumptions were violated. There's no bad guy here, just people doing their best.
I think it is a bit more than that.
You point out two things:
So, now, obviously if you wrote the "fuck it", then well, you fix it. If you found the DNS library problem - find a better lib or something.
But if you take the stance "fuck it, there's always something", you don't even have a chance of finding out. If you had a test suite running 10 seconds, and suddenly it's up by 10 more, you would notice. If you had tests running for 10 minutes, you would not.
If you had a webapp or something that always opened "fast", then suddenly it gets doubly slower, you'll notice it. But if you already started slow, you won't notice (or care, or both), when it gets even worse.
I think that's the point of the article. If we all dug in and fixed a little bit, eventually we'd have fast apps or tests or whatever. If you accept that things suck, you'll make it tripply worse. It is a conscious effort to be fast.