You’re either a troll or an uninformed idiot who has never done operating system development. A properly modularised OS can allow for minimal upkeep for older hardware. A leading example is Apple’s .kext system allowing for near 10 years of OS support both on macOS and iOS. Not that I think Apple is a great company but they do have some really good software development practices.
Also regardless of the technical explanination above, accepting a constant flow of e-waste for the sake of a new shiny year is just unethical regardless of the supposed reason.
I actually did do operating system development, at least back in school. But comparing Apple to everybody else is insane when Apple controls the full vertical stack of end to end hardware. You may as well compare them to the driver support on Nintendo or Toyota.
And also there’s the problem that the Android OS is based on Linux which handles the “wierd new hardware” problem by recompiling the kernel, which doesn’t work so well with closed-source binary drivers. And that’s before even getting into the ARM architecture.
I’m playing around with OS development only as a hobby currently. I don’t know much about black box insides of macOS however I have used third party drivers as well as looked into how the kext system is structured and it really seems like a master class of software engineering. Having the drivers structured hierarchically under categories/subsystems and with multiple kernel API revisions supported means the kexts work over a wider lifespan.
Also comparing Apple to the rest of industry is not completely unreasonable for one reason. Modern register level documentation is hidden under shitty NDA’s and aren’t even complete half the time, with the usually poorly written SDK being used as documentation instead. Even better is when parts of the SDK are fucking binaries with no hopes of figuring out where the bug lies. The top dog of course is no SDK whatsoever and instead opting to release a fixed, factory compiled linux kernel release for Android only. I believe this is what Qualcomm mostly do and why those Android releases have a fixed lifespan of 3-5 years. When this is how over half the Android phone SoC market operates, I wonder how half of them make it to market working as well as they do.
Linux on the other hand is just a mess (In more ways than one. I have low opinions of it). That is not a good example of modular driver support. The unwillingness of the Linux community from both userspace applications / libraries and kernelspace to maintain a versioned API system with rigorous testing for compliance and to instead create a moving target is nothing short of a fucking joke. It’s no wonder Android can’t easily maintain cross-generation support. Then there is the lack of support for running different versions of libraries side by side as necessary.
I run a Linux server for home use as it’s still king in this regard and have sometime attempted to use Linux as a desktop. However I eventually come to the same conclusion that it’s just too unstable and “patched together”. My daily driver is still a mac, no matter how much I want to move away due to Apple’s worsening business practices.
Sorry for getting heated. It just really boils me when people defend poor software development practices because it the “industry standard”. I disdain manufactured e-waste stemming from rubbish software development practices.
I’m not sure why you’re getting downvoted because your argument is right. Apple has a rather small number of hardware devices to support. That makes long term support a lot easier.
Edit: I mostly disagree with your previous argument though. Planned obsolescence is alive and thriving. I’ve seen so many PCB layouts where heat sensitive parts were placed right next to heat emitting ones that I cannot believe this is by accident.
Sorry about that but it really boils me when people defend poor software development practices when making the point of supporting hardware for a long time is difficult.
You’re either a troll or an uninformed idiot who has never done operating system development. A properly modularised OS can allow for minimal upkeep for older hardware. A leading example is Apple’s .kext system allowing for near 10 years of OS support both on macOS and iOS. Not that I think Apple is a great company but they do have some really good software development practices.
Also regardless of the technical explanination above, accepting a constant flow of e-waste for the sake of a new shiny year is just unethical regardless of the supposed reason.
I actually did do operating system development, at least back in school. But comparing Apple to everybody else is insane when Apple controls the full vertical stack of end to end hardware. You may as well compare them to the driver support on Nintendo or Toyota.
And also there’s the problem that the Android OS is based on Linux which handles the “wierd new hardware” problem by recompiling the kernel, which doesn’t work so well with closed-source binary drivers. And that’s before even getting into the ARM architecture.
I’m playing around with OS development only as a hobby currently. I don’t know much about black box insides of macOS however I have used third party drivers as well as looked into how the kext system is structured and it really seems like a master class of software engineering. Having the drivers structured hierarchically under categories/subsystems and with multiple kernel API revisions supported means the kexts work over a wider lifespan.
Also comparing Apple to the rest of industry is not completely unreasonable for one reason. Modern register level documentation is hidden under shitty NDA’s and aren’t even complete half the time, with the usually poorly written SDK being used as documentation instead. Even better is when parts of the SDK are fucking binaries with no hopes of figuring out where the bug lies. The top dog of course is no SDK whatsoever and instead opting to release a fixed, factory compiled linux kernel release for Android only. I believe this is what Qualcomm mostly do and why those Android releases have a fixed lifespan of 3-5 years. When this is how over half the Android phone SoC market operates, I wonder how half of them make it to market working as well as they do.
Linux on the other hand is just a mess (In more ways than one. I have low opinions of it). That is not a good example of modular driver support. The unwillingness of the Linux community from both userspace applications / libraries and kernelspace to maintain a versioned API system with rigorous testing for compliance and to instead create a moving target is nothing short of a fucking joke. It’s no wonder Android can’t easily maintain cross-generation support. Then there is the lack of support for running different versions of libraries side by side as necessary.
I run a Linux server for home use as it’s still king in this regard and have sometime attempted to use Linux as a desktop. However I eventually come to the same conclusion that it’s just too unstable and “patched together”. My daily driver is still a mac, no matter how much I want to move away due to Apple’s worsening business practices.
Sorry for getting heated. It just really boils me when people defend poor software development practices because it the “industry standard”. I disdain manufactured e-waste stemming from rubbish software development practices.
I’m not sure why you’re getting downvoted because your argument is right. Apple has a rather small number of hardware devices to support. That makes long term support a lot easier.
Edit: I mostly disagree with your previous argument though. Planned obsolescence is alive and thriving. I’ve seen so many PCB layouts where heat sensitive parts were placed right next to heat emitting ones that I cannot believe this is by accident.
Sir, you can prove someone wrong without insults. You need to chill a bit.
Sorry about that but it really boils me when people defend poor software development practices when making the point of supporting hardware for a long time is difficult.
Shh corporation bad giv updoot.