3 ms·
It's not just Java. Apple's been awful with backward compatibility for years. Every time Apple upgrades their Mac OS a frantic application re-write is often r
by tom_rath 18y ago
It's not just Java. Apple's been awful with backward compatibility for years.
Every time Apple upgrades their Mac OS a frantic application re-write is often required from third-party developers just to get things working on the new platform. In contrast, I can pull out an application written 15 years ago for DOS and fire it up under Windows without a problem. Microsoft realizes how important it is to keep third-party software working on their platform and bends over backwards to provide that backward compatibility.
For our own software, we've not had to tinker with the base code (written on Win 98) at all under Windows.
Building desktop apps for Mac is a (lucrative) pain.
- tlrobinson 18y agoAside from a) the Mac OS to Mac OS X transition (though existing apps worked under "Classic" mode), b) some apps during the PPC to Intel transition (namely apps with assembly or endian issues), and c) apps that used private / unpublished APIs, that's not really true. It's true Microsoft goes to extraordinary lengths to keep backwards compatibility. Consider the Joel Spolsky anecdote about SimCity: http://www.joelonsoftware.com/articles/APIWar.html http://www.joelonsoftware.com/articles/APIWar.html In case you missed that, SimCity had a bug where it used memory it already freed. This worked under DOS for whatever reason, but not under Windows. So the Windows team hardcoded a special case just for SimCity. That is going too far, IMO. Why should my OS have all this extra bloat to check for buggy applications? This is why OS vendors seed preview releases to developers, so they can test their own damn software and issue fixes for these kinds of bugs. While it may have been hard to distribute updates 20 years ago, with the internet it's trivial.
- es 18y agoSimCity had a bug where it used memory it already freed. This worked under DOS for whatever reason, but not under Windows. So the Windows team hardcoded a special case just for SimCity. It sounds like there was a some kind of bug in DOS that allowed SimCity to work with object freed from memory and Windows team tried to hide it in Windows by making a special case :) In any case I think it's called going an extra mile for the customer, isn't it? (I can't believe I'm writing it about MS)
- tlrobinson 18y agoReusing freed memory is a bug. Period. It might work sometimes, but I'm pretty sure most platforms consider that behavior undefined.
- jmtulloss 18y agoMicrosoft is a software juggernaut. They can throw as many developers at a problem as it takes, and backwards compatibility is one of those problems they've chosen to focus on since they're used so much in business. Apple can't do that, and it pays a lot less for them. Mac apps tend to be more consumer based, which means backwards compatibility isn't nearly as important.
- demallien 18y agoHave you got any actual examples of backward compatibility problems on the Mac? I've written a few Mac apps that targeted Jaguar, and they still work fine under Leopard. Also, Apple never just pulls the plug on an API - at worst, if you use an API, and then Apple decides to remove the API, the next version of the OS simply lists the API as deprecated, and you get a warning when you compile. It is only in the following version of the OS that the API may actually be pulled. I don't think it's unreasonable to expect developers to update their apps every 2-3 years if they want them to keep working.