5 ms·
It doesn't have to be features that are required. Another OS version just requires more development time and more testing resources. There are lots of little th
by lambda 14y ago
It doesn't have to be features that are required. Another OS version just requires more development time and more testing resources. There are lots of little things that you discover break if you develop on the latest OS, and then test on the older one (or vice versa; neither forwards nor backwards compatibility are perfect). At this point, 10.8 is out, so developing on 10.5 means you need to test on 4 different versions, each with their own quirks, just for Mac OS X.
Obviously there are no features that are required to display a web page that are missing on 10.5. Browsers were developed and ran perfectly fine on there. Some newer features might not work, or some newer optimizations. But remember, keeping around all the old code paths, that check for particular features, can lead to more development cost, more testing cost, more bugs, more security vulnerabilities.
Another example is security features. Snow Leopard (10.6) introduced some new security features, like stack protection and more sandboxing. Chrome is heavily focused on security, and they may not be able to provide the full isolation that they would like on 10.5.
I develop software that should by all rights work fine on 10.5. And nothing that we do can't be made to worth there. But it takes more work; I develop on 10.7, we test heavily on 10.6 and 10.8, and when we go to test on 10.5, we find things that are broken not because they're impossible, but just because some interface is different so we need to add a new code path to handle that case. All that extra testing and development is expensive, and there are increasingly few people still on 10.5, so the benefit is continually shrinking.
- gaius 14y agoRight, but this is Apple's own product. They had to be already set up for testing on 10.5, and made a conscious decision to stop.
- batista 14y agoHe explained it all in his comment. (1) Being "already set up for testing" for an older OS version and (2) continuing to use the testing setup for that version in addition to ever increasing new test setups (for 10.6, 10.7. 10.8 etc) and codepaths is not the same thing. As you get newer OSs to support, maintaining older testing setups means more work, and more IFDEFS and such in the code.
- gaius 14y agoI am not too bothered about them needing to do more work given that they produce a premium product, in fact putting more care in is their entire shtick! Car makers don't stop making spare parts a couple of years after a new model comes out. If they did no one would buy them.
- batista 14y ago>I am not too bothered about them needing to do more work given that they produce a premium product, in fact putting more care in is their entire shtick! Putting more care in the LATEST offering. Putting more care in older versions if a loosing proposition. And it's not just a "throw more people / money at it" problem. After some point the complexity of legacy support grows exponentially and the code suffers (or gets hold back). >Car makers don't stop making spare parts a couple of years after a new model comes out. If they did no one would buy them. 5 years in computing is like 20 car years...
- ryannielsen 14y agoWhat, exactly, is Apple to test? They're not shipping updates to 10.5, and Chrome is Google's product to test.
- lambda 14y agoWait, what? Chrome is not Apple's product. It's Google's. And being already set up for testing does not make it free. Hardware dies, and you have to replace it. More and more developers move on to newer OSs, and it becomes harder for them to get all of their development environment working in the older OS to find and fix bugs. Have you ever tried developing a product with backwards compatibility across 4 different OS releases? It is by no means easy, it limits what you can do, and it makes your software more complicated and bug prone. Don't think of it as having to make a conscious decision to stop. It's more that you have to make a conscious effort, that gets greater as time goes on, to continue supporting the older release. More libraries that you use start dropping compatibility. More new features have to be ifdef'd out, leading to divergence in what your software supports on different systems. More effort has to be put into keeping the build system running. And more manual testing needs to be done.