4 ms·
"Software is getting slower more rapidly than hardware is becoming faster" https://en.wikipedia.org/wiki/Wirth%27s_law https://en.wikipedia.org/wiki/Wirth%27s_
by routerl 6y ago
"Software is getting slower more rapidly than hardware is becoming faster"
https://en.wikipedia.org/wiki/Wirth%27s_law https://en.wikipedia.org/wiki/Wirth%27s_law
- TwoBit 6y agoI don't think this is mostly true. Many classes of applications are running perceptively similar to before but accomplishing much more. Easiest example is game software. But it’s true enough for web browser software if you can extract the crippling effect of today's ad networks (which many people do via a plugin).
- ryandrake 6y agoAre they really accomplishing that much more? Or are they being used to create and destroy containers of ClassFactoryProxyBuilders over and over? The topic reminds me of “24 Core CPU and I Can’t Move My Mouse” [1]. We deploy faster and faster hardware and use it for what? For holding global locks, iterating through object tables and navigating through abstraction after abstraction until the call stack is 100 calls deep. My word processor today is about as UI responsive as MS Word was in the 90’s and I use pretty much the same features now as I did before. Visual Studio Code’s UI is noticeably slower on my modern CPU than Visual C++ 6 was 30 years ago, although to be fair it compiles much faster today. 1: https://randomascii.wordpress.com/2017/07/09/24-core-cpu-and-i-cant-move-my-mouse/ https://randomascii.wordpress.com/2017/07/09/24-core-cpu-and...
- outsomnia 6y ago> abstraction after abstraction until the call stack is 100 calls deep. If the software is maintainable and has less bugs, this is not a crazy way to spend the cycles. Web browsers run insanely stable over very long periods of time when you consider what's under to hood.
- lmm 6y agoYep. Remember how often Word would crash in the '90s? We were warned to save our work regularly lest it be lost. Make it work, then make it right, then make it fast. We shouldn't even begin to worry about performance until we've got a handle on correctness, and frankly software in general isn't there yet.
- TeMPOraL 6y agoThat's nice in the abstract, but in real life, shitty performance costs people money and sanity right now, and that cost scales up with the number of users. Also, arguably, auto-saving existed in 90s - and the primary reasons it wasn't as nice as it was today were UX (wasn't enabled by default IIRC) and hardware (spinning rust wasn't good enough to support transparent auto-saving every other second).
- lmm 6y ago> That's nice in the abstract, but in real life, shitty performance costs people money and sanity right now, and that cost scales up with the number of users. So do crashes, and so especially does silently outputting the wrong answer. Slow but reliable beats fast but flaky every time, and it's much easier to speed up a working program than fix a flaky one.
- TeMPOraL 6y ago> If the software is maintainable and has less bugs, this is not a crazy way to spend the cycles. It's not? Consider: to make your workflow easier, you impose costs - real costs, in both emotions and money - on every single one of your users. And the more users you gain, the more the society ultimately pays for a fixed benefit of making it easier for your team to do the work. To some degree, this trade-off is necessary, but I propose that it's absolutely crazy to consider taking it unless it is necessary.
- Tepix 6y ago> ... but accomplishing much more. Easiest example is game software. Ha! Are you saying the old games that ran faster didn't bring us joy?
- maccard 6y agoI think that's a really disingenuous reply. He's clearly saying that the processing power advancements have shown significantly in games;commodity hardware now performs real time ray tracing in 3d in a photorealistic depiction of a real life city for not-much-more-dollar-cost than the N64 did when it was launched 25 years ago. Whether it brings you more joy or is more/less fun is irrelevant
- Tepix 6y agoIt was a tongue-in-cheek reply of course, but there's some truths to it. Just like 4K resolution doesn't make movies better, adding raytracing or fancy shadows doesn't turn a bad game into something that's more fun than, say the Super Mario Bros. (1985, 31KByte) on NES (2KB RAM) which sold 40 million copies. We need to question ourselves every now and then why we are adding things like cutting edge graphics to games (and adding complexity in general). Which is what this article is about.
- TeMPOraL 6y agoThat's nice that you mention games, because they're a great baseline for what your hardware can do. I personally use it as a sanity check. I look at the amount of data processing the software I'm building does, compare it mentally against the amount of data processing a random videogame from 10 years ago did, and ask myself (and the team), how come our software does much less work than that game, and runs much slower than that game did a decade ago? (And the answer very often boils down to: lots of unnecessary parsing or string processing, and bad choices in data structures. Both relatively easily fixable, if one bothers to look for it - and both mistakes that could have been avoided in the first place at little to no cost in developer effort.)
- lpa22 6y agoWith as recent of a phenomenon as bloated software feels, I was shocked to see the 1995 date on this quote
- ainar-g 6y agoNiklaus Wirth is a visionary, and his legacy is honestly severely underappreciated. Pascal was a reasonably well designed language for its time and purpose. The Oberon ecosystem has in many ways inspired Plan 9 From Bell Labs and, transitively, the whole post-Unix movement. His book “Compiler Construction” is still one of the most accessible introductions into the world of compilers, which I recommend to anyone interested in the topic.
- taneq 6y agoTry using a 20-year-old machine, even a freshly installed machine running contemporaneous software is painfully slow compared to a modern econobox.
- brazzy 6y agoI have a desktop PC that I built from cheap components 10 years ago (first generation core i3). It doesn't feel particularly slow at all using most current software.
- sumtechguy 6y agoYou may just be used to it? I just did an upgrade this year to something way more current. Using my old computer feels 'sluggish'. Last year this time I would have said the same as you about that same computer. The new computer is from cold power off to useable desktop in under 5-10 seconds. The old one was more like 60. If the computer is serving your needs then there is no issue really. For me it was some new bits of software just did not cut it on the old one.
- brazzy 6y agoNo, I have my pretty new work laptop as a comparison. Maybe I'm just not using any really resource-hungry new software.
- pjmlp 6y agoNo need for contemporaneous software, for many people a 20-year-old office of some kind is more than enough, plus email. :)
- AnIdiotOnTheNet 6y agoI have an old XP laptop in my office, which I keep around because it still has a serial port. Every couple of months I have to use it and I'm always a bit unsettled at first by how responsive everything is because modern software has made me so use to everything feeling like molasses.