Comment by ryandrake
2 years ago
I have a little hobby project (iOS and macOS) that I don't regularly develop anymore, but I use it quite often as a user, and I like to keep it compiling and running on the latest OSes. It's aggravating (and should be totally unacceptable) that every time I upgrade Xcode, I have a few odds and ends that need to be fixed in order for the project to compile cleanly and work. My recent git history comments are all variations of "Get project working on latest Xcode".
I could almost understand if these underlying SDK and OS changes had to be made due to security threats, but that's almost never the case. It's just stupid things like deprecating this API and adding that warning by default and "oh, now you need to use this framework instead of that one". Platforms and frameworks need to stop deliberately being moving targets, especially operating systems that are now very stable and reliable.
I should be able to pull a 10 year old project out of the freezer and have it compile cleanly and run just as it ran 10 years ago. These OS vendors are trillion dollar companies. I don't want to hear excuses about boo hoo how much engineering effort backward compatibility is.
Apple is notoriously bad when it comes to this.
I used to work on a cross-platform product and Windows was relatively stable across versions, as was Linux.
Macs on the other hand required a lot of branching for each version.
Hardware changes over 10 years.
Macs don’t even run on the same CPU architecture or support OpenGL.
Sometimes things just need to change.
The worst is when your virtualization environments intended to provide long-term support don't even accomodate the "new" mainline hardware. Most frustrating example: Virtualbox doesn't work on Apple M1 or M2 chipsets.
why would it, though? Qemu (probably) works on "M" macs. Virtualbox is linked intimately with the underlying hardware, it's a translation layer - even though it can do emulation, it's x86 emulating x86.
i always thought i was one of the few people that used virtualbox instead of the more popular ones; i tend to forget that there's probably a subset of developers that still use it for the orchestration software that can use it.