JoT
Scribble
living

End-of-Support OSes

2023-05

Huidong Yang

Now both my machines are running outdated OSes, one with Windows 7, which I will definitely keep using until the demise of the physical device; but the other with macOS High Sierra (10.13) is in a much trickier situation. It has been my main dev machine for years, but perhaps due to the intro of the "Universal binary" format (Intel + Apple Silicon), most newer apps, and even a rapidly increasing number of old ones, are ditching support for 10.13. Based on a small sample, it seems that Catalina (10.15) is the current threshold (e.g. KeePassXC 2.7, CCC 6, and Zed, a new code editor using Rust techs), and indeed that makes sense, as that was the OS version by which the Universal binary builds were first supported, I suppose in preparation for the proper intro of Big Sur (v11) that can run on Apple Silicon-based devices.

My Mac is mid 2015 MBP, so I could upgrade to Monterey (v12). But the question is, Is it worth the risk? The benefits seem obvious, you get to install anything, try all the shiny new dev tools, etc. But the risks are hard to ignore if you think about it. Whole-computer data backup, which to me is essential, will change substantially, and I'm not sure it'll be for the better. CCC 5, which I've been using all along, creates "bootable backups", but only prior to Big Sur, due to the "Signed System Volume" scheme introduced there. Backup should still work, but the setup will likely change in significant ways (e.g. currently I'm using for backup a non-SSD drive formatted in HFS+, but from what I've read, CCC running on later OSes will require the destination disk to be formatted to APFS as well, which will make the IO performance degrade terribly). So do I have to buy an SSD after the upgrade?

I'm also worried about older software breaking after upgrading to Monterey. Will Office 2016 stop working? I know I'm not using it much these days, but just as an example, the consequence of the decision could be extensive. There's a rule of thumb/factoid out there, saying that typically, it's newer software running on older OSes that tends to be problematic, but older software often runs fine on newer OSes. Well, even if it's a generally legit point, it's never a guarantee, and you still have to deal with the troubles if they do occur.

OK, to be honest, I was very much tempted to give it a try. With a bootable backup at hand (although I've never tried to restore the system with it), it shouldn't be an unrecoverable catastrophe, right? That's what I thought, but then one of the principles of mine kicked in.

The benefits have to outweigh the risks before you take them, esp. when the risks are dire. This is the anti-iatrogenic principle from the book Antifragile. Here's the reasoning in this particular case. As a dev machine, what are the essential tools that you rely upon? Language toolchains, editors, dev tools. For me, the four main language toolchains are all working fine: Elm, Rust, Tcl, Kotlin (now dubbed TREK, previously REKT, or ERKT; TREK is better). Heck, they even work fine on Windows fucking 7. Well, with Kotlin, since there's no lightweight alternative editing experience to the bloated AF IDE options, I have to stick to older versions of Android Studio (e.g. Electric Eel still works on High Sierra, but barely).

I mentioned Zed before. There will always be shiny new things. (Hey, but Helix editor still works on High Sierra, but not Windows 7.) There's also Warp (an improved terminal experience, also using Rust techs). Docker for Desktop will work if I upgrade (it now requires Big Sur), and so does Homebrew. But again, none of these are really essential. I'll just get a new Ubuntu installed if I need Docker; I'm sticking to VS Code (for Rust) and Sublime Text (for Elm and Tcl).

I'm not afraid of taking the risk of upgrading. I just don't have a valid reason to do it yet. As I said, I almost did it, thinking that it'd be a good opportunity to see if my CCC backup actually works. But after I identified what are essential, I saw that there was simply no case.

I mean no case yet. I'm not against upgrading my Mac, it's free. But take risks when they should be taken. You take it in order to get something essential working. And if it didn't work out, and you ended up having to deal with the consequences, you wouldn't regret the decision, because you know it's worth it. Risking for nothing is the worst kind of regret you'll ever get.

Plus, after the upgrade, I expect there will be potentially a lot of maintenance work to be done, you know how time-consuming these things can be, even money-consuming, if some important apps need to be upgraded in order to function properly in the new OS. So, that's how the case was closed, for now.

TREK all working. We're good. Speaking of which, new techs, like Zig, Deno/Bun, none of them works on High Sierra or Windows 7. Heck, even for Node, at least I get to find an old but working version (v12.22.12) for Windows 7 so that I can use UglifyJS to compress Elm output.

I'm no fanboy of either Windows 7 or macOS 10.13, per se. But I like that by keeping using them, things generally don't break, so my workflow is never interrupted. I get to keep using all the existing software that's tried and true, regardless of how old they are. Stability and backward-compatibility, these are I know very hard to achieve and maintain, esp. in tech where most agents want to move fast. But when we get to have it, we know how good it is. It's being increasingly underrated nowadays.