I just spent a month upgrading a bunch of cloud servers to AMD EPYC, and it was such a nostalgic feeling to be able to speed up systems with a simple, risk-free hardware upgrade.
Remember those days? When every server upgrade magically sped up everything by a factor of two or three? The stop button was pressed on that wonderful time for about a decade, but what seemed like an end of an era wasn't. It was just a pause, and now we're playing with ever faster tin once again.
It feels almost strange for that era of ever increasing hardware speed to make such a forceful comeback after having been stuck at Intel 14nm in the server space for years. The upgrades to 7nm AMD are already pretty impressive. I hear good things about Apple's 5nm laptop chips. Server chips on 3nm should blow everyone's frigging minds.
Exciting times!
Software will inevitably eat all those gains
Yeah, now we can have Electron apps compiled to WASM running in virtual browser instances hosted remotely in the server with feeds sent back via H.264 streams that then have to be decoded by a local browser instance to be rendered to...
I know this is a meme, but back in around 2012 or so, one of my grandpa's friends pulled out a Windows 2000 laptop and loaded up a spreadsheet in Excel 2000.
I was blown away by how snappy and responsive the whole experience was compared to the then-not-bad Core2 Duo Grandpa had in his machine, running Windows 7 and Office 2010.
Honestly, it doesn't feel like personal computing has improved much at all. I remember using Windows 2000. Run it on an SSD and it flies (tried it recently). Yet I can't identify anything that W10 does better (for me) than W2000 that justifies its sluggishness on a C2D.
While it is true that older software is extremely snappy if you compare it with what we use today, it is not that hard to find examples where we have come a long way. Off the top of my head:
- You can mix chinese and russian characters in a document [pervasive use and support for unicode]
- Your computer won't get zombified minutes after you connect it to the internet [lots of security improvements]
- You can connect a random usb thingy with a much much lower probability of your computer getting instantly owned [driver isolation]
- You can use wifi with some reliability [more complex, stable and faster communication protocols]
- You can have a trackpad that doesn't suck [commodization of non-trivial algorithms/techniques that did not exist back then]
- Files won't get corrupted time and again at every power failure [lots of stability improvements]
Whether all of the above could be achieved with the _very performance oriented_ techniques and approaches that used to be common in older software is debatable at least. In any case, a lot of the slowness we pay for toady is in exchange of actually being able to deal with the complexities necessary to achieve those things in reasonable time/cost.
> In any case, a lot of the slowness we pay for toady is in exchange of actually being able to deal with the complexities necessary to achieve those things in reasonable time/cost.
This is also debatable at least.
Just a few weeks ago it turned out that the new Windows Terminal can only do color output at 2fps [1].
The very infuriating discussion in the GitHub tracker ended up with a Microsoft tea member saying that you need a " an entire doctoral research project in performant terminal emulation" to do colored output. I kid you not. [2]
Of course, the entire "doctoral research" is 82 lines of code [3]. There will be a continuation of the saga [4]
And that is just a very small, but a very representative example. But do watch Casey's rant about MS Visual Studio [5]
You can see this everywhere. My personal anecdote is this: With the introduction of new M1 macs Apple put it front and center that now Macs wake up instantly. For reference: in 2008 I had the exactly same behaviour on a 2007 Macbook Pro. In the thirteen years since the software has become so bad, that you need a processor that's anywhere from 3 to 15 times more powerful to barely, just barely, do the same thing [6].
The upcoming Windows 11 will require 4GB of RAM and 64GB of storage space just for the empty, barebones operating system alone [7]. Why? No "wifi works reliably" or "trackpad doesn't suck" can justify any of this.
[1] https://twitter.com/cmuratori/status/1401761848022560771
[2] https://github.com/microsoft/terminal/issues/10362#issuecomm...
[3] https://twitter.com/cmuratori/status/1405356794495442945
[4] https://twitter.com/cmuratori/status/1406755159347130371
[5] https://www.youtube.com/watch?v=GC-0tCy4P1U
[6] https://gadgetversus.com/processor/apple-m1-vs-intel-core-2-...
[7] https://www.microsoft.com/en-us/windows/windows-11-specifica...
This uses all the constraints that the Windows terminal team cited as excuses: it uses Windows subsystems etc. One person, 3k lines of code, it runs 100x the speed of Windows terminal.
See the epic demo (and stay till the end for color output): https://www.youtube.com/watch?v=hxM8QmyZXtg