Last Active
  • Over 187,000 apps could become obsolete with Apple's 64-bit only 'iOS 11'

    pepe779 said:

    2. I have yet to see the true benefit of 64 bit mobile apps and at least one solid reason why 32 bit apps can no longer be supported.

    4. Microsoft had many opportunities to kill 32 bit apps on their desktop OS but they never did it. Why do we need to kill them on a mobile OS?

    I'll try to answer these two together. First off, the main benefit of the 32-bit to 64-bit transition on ARM and x86 wasn't the additional address space. Both architectures had accumulated a lot of cruft over the years (x86 more than ARM). So in both cases, the transition to 64-bit was used as an opportunity to clean up this cruft. In both cases, code compiled for the new 64-bit mode ran faster than 32-bit code on the same CPU.  That was the the main reason for Apple to introduce 64-bit support in the A7 and later. Faster code means that the CPU can go back to sleep faster, which means better battery life for mobile devices. 

    The reasoning behind why Apple wants to drop support for 32-bit apps is simple - resources on mobile devices are constrained. Loading a 32-bit app on a 64-bit device means loading in 32-bit versions of all the frameworks that the app uses. Normally when a framework is loaded, only one copy has to be in memory at a time since the memory is shared between all the processes that use that framework. Having the 32-bit version means that now the memory usage is doubled for any framework used in both modes. The biggest framework being UIKit, which powers the UI for all apps on iOS. 

    Add in the fact that 32-bit code runs slower and therefore uses battery up faster than 64-bit code, it becomes obvious why Apple wants to git rid of 32-bit code. 

    Once they get rid of 32-bit code, other minor benefits are enabled - their OS gets smaller because they don't have to include 32-bit frameworks. The apps get smaller for similar reasons. They can stop maintaining 32-bit support in their development tools, along with the QA load of testing 32-bit support. And they have an opportunity to flush out apps that literally haven't been updated in years from the store. 

    As for why Microsoft didn't get rid of 32-bit support, they have much different constraints. For one, desktop machines typically have much more memory than mobile devices. Loading an extra copy of all the libraries under Windows isn't going to be as intensive as doing so on iOS. Also Microsoft was a bit late in the 64-bit game - they introduced 64-bit with XP, but most people didn't run 64-bit Windows until well into Windows 7 or possibly even 8's lifetime. Pulling support for 32-bit apps on Windows would be very premature right now. Finally, Microsoft has a history of bending over backwards to keep old apps running, while Apple prefers to keep moving the platform forward and have their developers make sure apps are updated to run on the latest. Two different approaches, both with their positive and negative aspects.  

    I totally get that it's frustrating as a user - I'm potentially going to lose a few apps that I regularly use when this happens. But Apple has to be able to move the platform forward rather than holding things up because of laggard developers.