As far as code breaking changes go, the impact should be low. How many times in a code base should you need to call msg send? And the risk of problems is low. Only if your code was silently relying on float corruption would you notice a change. Anybody making six figures should be able to analyze such a thing without too much whining.
> The prototype is changing to break code that was poorly formed in the first place.
I guess calling it directly would even be poor form by itself so who knows.
The point being that there are limited cases where it is justifiable. For example, a VM or language interop would likely be justified. Those types of cases mean the absolute number of call sites should be small though. In other words, the problem is somewhat self-limiting. Probably, in appropriate use, the function would be called extensively, but likely not from many sites.
> Apart from the fact that earning six figures still isn't the norm for most Objective-C developers.
I have no horse in this race.. I don't work in the industry for years.
This was also a somewhat tongue-in-cheek remark that I think you are reading too deeply into. The real point is, software engineers are generally paid well relative to median incomes and have a cushy job. On the scale of pain, this doesn't seem like a big deal - not even a Python 2 to 3 transition.
BLS average salary for software engineers is $103k, not including bonuses and stock, etc. I would think the average engineer that would justifiably use msg send directly is being paid greater than the BLS average - which includes all the enterprise LOB app slaves that don't do incredibly well.
That advantage is to migrate C code into Objective-C, just like C++ and TypeScript have done as well.
In fact, NeXTSTEP and its derived OSes have very little pure C code, beyond BSD/XNU kernel and the POSIX APIs.
https://developer.apple.com/documentation/foundation/file_sy...
My point is that there's tons of non legacy C code, in the OS outside of the kernel and posix subsystems on *OS.