Hacker News new | past | comments | ask | show | jobs | submit login

Can't you just add a compiler conditional to use one function if macOS < 12, and the other function on macOS >= 12? How is this different than any other API migration?



You can, and from that point on you have to build and maintain two binaries which only vary by which version of the OS they run on. Instead of just having one file to download, your users need to look at a system info panel to find out which OS they're running, and download the right version, because running the wrong one will print some cryptic error about being unable to resolve a _IOMainPort symbol

By comparison, there is no problem running a binary from Windows 95 on Windows 11, nor is it a problem to run old (static) Linux binaries on modern Linux

What's so awful about this is that Apple is forcing this API breakage for one reason only: to get the word "master" out of the name of one of their low-level API calls. Not a security issue. Not a performance issue. Not a maintenance issue. With this breaking change, Apple virtue-signals about how _little_ it cares about backward compatibility




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: