3 ms·
Title is a bit clickbaity, but the authror has a point. We're doing the same things as before but wasting huge amounts of computer power. Been my position for
by drpixie 3y ago
Title is a bit clickbaity, but the authror has a point. We're doing the same things as before but wasting huge amounts of computer power.
Been my position for quite some time. But you can imagine it doesn't go down well on HN. Here latest language/machine/etc is of great interest, and keeping-up-with-the-xxxs is normally seen as vital :(
- erik_seaberg 3y agoHardware is so cheap that we have the luxury of optimizing for developer time, which keeps getting more expensive. Cranking out over a hundred lines to do “almost nothing” is not a good use of time, and 200 kqps without concurrency isn’t realistic unless you blow all your memory on caching everything (your single-core time budget is 5 µs!)
- mkristiansen 3y agoI'm not sure the line count is a good measure of productivity. Is that true on the note of "optimizing for developer time"? Do people actually have an understanding of the tradeoff they are making? Do the teams building applications in Java actually know what it would take to do them in C, and choose that the tradeoff is too big? Does the Typescript backend developer know what it would take to do the same in C++ and decide against it? Or are they mainly working out of a preconceived bias that their favorite language is best and that everything else is worse? For the 5 µs, I recall a currency conversion system(tin-cup) with in-memory currency rates whose only job was to convert incoming requests to USD. Ignoring the fact that this should never have been an independent system. This seems like a perfect use case for working in a highly optimized environment. ;)
- mkristiansen 3y agoI have started to think that much software development has turned into folklore that no one spends time questioning. Questions like: "Does using Typescript for your backend make you, the programmer, faster/more efficient?" "Do I need a full-blown ORM framework to interact with my database?" "Do I need a runtime with lightweight threads?" I also have started developing a headache every time someone claims that they are optimizing for developer productivity but cannot articulate the tradeoff they are making. If you use technologies that cause you to use 20x the hardware, you will need to run complicated DevOps, or whatever we call it, very early. I have companies with ten concurrent users using Terraform to spin up their microservices in multiple regions on beefy machines. With mental/developer overhead of dealing with the complexity of large distributed systems, YEARS before their company needs the complexity. You are not optimizing for developer productivity; you are just doing random stuff, and claiming that its best practice.