▲ | godelski 6 days ago | |||||||||||||||||||||||||
Reminds me of a misinterpretation of Knuth.
He was definitely knocking engineers for wanting to write "perfect" algorithms, but this quote also got bastardized to mean something different from what he said (happens to many clichés). All he said was "grab a fucking profiler before you optimize."But now, I'm not sure a lot of programmers even know what a profiler is. When was the last time you saw someone profile their code? Problem is we've taken the idea of "minimum viable product" too far. People are saying "Doesn't have to be perfect, just has to work." I think most people agree. But with the current state of things? I disagree that things even work. We're so far away from the question of optimization. It's bad enough that there are apps that require several gigs to just edit a 30kb document but FFS we're living in a world where Windows Hello crashes Microsoft Outlook. It's not the programs are ugly babies that could be better, they are monstrosities begging to be put to death. I WISH we could talk about optimization. I WISH our problem was perfectionism. But right now our problem is that everything is a steaming pile of garbage and most people are just shrugging their arms like "it is the way it is". Just because you don't clean up that steaming pile of garbage doesn't mean someone else doesn't. So stop passing the buck. | ||||||||||||||||||||||||||
▲ | mcv 6 days ago | parent | next [-] | |||||||||||||||||||||||||
> When was the last time you saw someone profile their code? A year ago. I heavily relied on one to optimize a complex data import that took an hour for a million line Excel file. The algorithm translated it to a graph according to a user-specified definition and would update an existing graph in neo4j, keeping the whole thing consistent. The only other guy who understood the algorithm (a math PhD) thought it was as optimal as it could get. I used the profiler to find all the bottlenecks, which were all DB checks for the existence of nodes, and implemented custom indices to reduce import time from an hour to 3 minutes. It did introduce a bunch of bugs that I had to fix, but I also discovered some bugs in the original algorithm. It was one of my best programming experiences ever. Especially the payoff at the end when it went down from an hour to 3 minutes is a dopamine rush like never before. Now I want to optimize more code. I don't think users cared, though; originally this work would take days by hand, so an hour was already pretty good. Now I made something fiendishly complex look trivial. | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
▲ | jcgrillo 6 days ago | parent | prev | next [-] | |||||||||||||||||||||||||
I invite your attention to the StatsD telemetry protocol, where: 1. Every single measurement in a timeseries is encoded as a utf-8 string having (roughly) the following format:
where name is like "my.long.namespace.and.metric.name", value is a string formatted number, god only knows what type is, and tags is some gigantic comma separated key:value monstrosity.2. Each and every one of these things is fired off into the ether in the form of a UDP datagram. 3. Whenever the server receives these presumably it gets around sometime to assigning them timestamps and inserts them into a database, not necessarily in that or any other particular order. "it is the way it is[1]." [1] https://github.com/statsd/statsd?tab=readme-ov-file#usage | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
▲ | lock1 5 days ago | parent | prev | next [-] | |||||||||||||||||||||||||
Ah, I'm bookmarking this. Thanks for writing this :) I love how you put it: "grab a fucking profiler before you optimize". I get complaints sometimes about using FP because of performance, and I think a variant of "grab a fucking profiler before you optimize" is much better response than "avoid premature optimization". Introducing them to a magical thing called as "profiler" is a nice bonus too. | ||||||||||||||||||||||||||
▲ | trinsic2 6 days ago | parent | prev [-] | |||||||||||||||||||||||||
> Problem is we've taken the idea of "minimum viable product" too far. People are saying "Doesn't have to be perfect, just has to work." I think most people agree. But with the current state of things? I disagree that things even work. We're so far away from the question of optimization. It's bad enough that there are apps that require several gigs to just edit a 30kb document but FFS we're living in a world where Windows Hello crashes Microsoft Outlook. It's not the programs are ugly babies that could be better, they are monstrosities begging to be put to death. LOL. OMG that was beautiful. It almost feels like we are de-evolving software to a state where shit is going to stop working bad. I know this is not full of facts, but this take reminds me of Jonathan Blow's video "Preventing the Collapse of Civilization"[0] Where he talks about how code runs worse than it ever has and I think he was arguing that civilization is collapsing before our eyes in slow time. [0]: https://youtu.be/pW-SOdj4Kkk?si=LToItJb1Cv-GgB4q&t=1089 | ||||||||||||||||||||||||||
|