# Another perspective on the upcoming Apple transition to ARM CPUs for new systems



## PhilBurton (Aug 13, 2020)

https://www.howtogeek.com/684586/intel-macs-vs.-apple-silicon-arm-macs-which-should-you-buy/
Phil


----------



## mcasan (Aug 16, 2020)

In the context of Adobe products, once MacOS 11 and the IOS/IPad versions get released, will that be the way we can FINALLY get LrC and full strength Ps on iPad Pros?    If so, does that weaken the case of ever moving to Lr Lite?     Could be an interesting fall.


----------



## Conrad Chavez (Aug 16, 2020)

There is no indication that upcoming versions of macOS and iOS will allow desktop macOS applications to easily run on iPads.

The only indications are the other way around: Catalyst technology allows future Apple Silicon Macs to run iOS apps natively on macOS. In other words, what might become possible is to be able to run the iPad versions of Lightroom and Photoshop on a Mac (not that you’d need to).

Lightroom “Lite”/Cloud is still the application that will give you an experience and access to photos that’s consistent across desktop and mobile devices, and Lightroom Classic will probably continue to be the odd application out, tied to desktop OSs. (I use Lightroom Classic.) I don’t expect Adobe to port Lightroom Classic to iOS; it is much more likely that Adobe will continue to add features to Lightroom to bring it “close enough” to Classic for most people. Except for the part about managing photos on local storage, not sure Lightroom will ever do that.


----------



## mcasan (Aug 16, 2020)

The new Xcode version creates Universal binaries that can run on Mac or iPad.   If the app can run on a 13" Macbook, it should be able to run on an iPad Pro.  Ultimately it is up to the maker to make an needed changes for iPad screen sizes and touch screens.   Maybe some makers don't want the Mac app to run on an iPad.    Should make for an interesting fall.

https://developer.apple.com/documentation/xcode/building_a_universal_macos_binary


----------



## clee01l (Aug 16, 2020)

mcasan said:


> The new Xcode version creates Universal binaries that can run on Mac or iPad. If the app can run on a 13" Macbook, it should be able to run on an iPad Pro.


I can understand that iPadPro apps might run on an ARM MBP, but not the other way around. iOS apps are not truly multi-threaded. And getting a. Multithreaded multi cored app that runs on MacOS would not seem feasible on the iPadPro


Sent from my iPad using Tapatalk


----------



## PhilBurton (Aug 17, 2020)

clee01l said:


> I can understand that iPadPro apps might run on an ARM MBP, but not the other way around. iOS apps are not truly multi-threaded. And getting a. Multithreaded multi cored app that runs on MacOS would not seem feasible on the iPadPro
> 
> 
> Sent from my iPad using Tapatalk


I'm a PC user, so I am just an observer, but major platform changes have always fascinated me.  So many ways to get it wrong.  So brilliant if done right.
I'm going to hazard a guess that a few years from now Mac laptops and iPads will have a merged product that an be either a normal tablet or a normal laptop, with a fully detachable keyboard, etc.  But it won't be cheap.


----------



## Conrad Chavez (Aug 17, 2020)

clee01l said:


> I can understand that iPadPro apps might run on an ARM MBP, but not the other way around. iOS apps are not truly multi-threaded.


I definitely don’t have a programmer-level knowledge of this, but can you explain that a little further? A quick Google search turned up articles like this one (first line: “Threading is an important concept in iOS.”) and this one (first line: “Concurrency in iOS is a massive topic.”).

The Apple A12Z, first used in the iPad Pro and now used in the Apple Mac Developer Transition Kit (a Mac mini retrofitted with that same A12Z iPad SOC), has an interesting eight core design: Four cores are high-performance, and four are high-efficiency (low power), used in whatever combination is needed at the moment to balance power and energy efficiency.

Where can we read about how iOS apps aren’t really multi-threaded?



clee01l said:


> And getting a. Multithreaded multi cored app that runs on MacOS would not seem feasible on the iPadPro


According to the two articles I linked to, iOS uses the *same* multi-threading framework that’s been used for years in macOS: Grand Central Dispatch (GCD).  This informative Macworld article about Apple Silicon says “Apple already very efficiently schedules workloads to take advantage of all cores as much as possible,” and GCD is the way most developers achieve that.

One of the things that many are looking forward to is seeing what kind of performance these unusually efficient and powerful Apple Silicon chips might let loose with when you put them in a computer that can provide a lot more power and cooling than an iPad.


----------



## clee01l (Aug 17, 2020)

I honestly have not paid attention to iOs since iPadOS came out.     This may be a game changer.  I'll need to  research more and get back to you.

Let me give you an example of multi threaded behavior. If you impiety images into LrC, the app will start the import on several files at once. Each file will have its own thread. In addition to the imports of files, there will be threads to write to the catalog file, previews file data base etc. All of these will happen concurrently. The OS CPU will switch rapidly between threads servicing each one. Threads that are idle can be swapped to the "swapfile" to make more RAM available. iOS with one CPU, no RAM operates on storage blocks one at a time like the Mac/PC CPU is handling threads so that whole applications retain their own swapfile and this storage area gets attention from the CPU in turn. About 25 years ago I was invited to IBMs offices in Austin, TX for a technology preview. We had to sign an NDA agreement. One of the preview demonstrations was a preview of the as yet unreleased PC operating system OS2. This was at a time when MS Widows was still a version 3.0. At the demo the host was showing a computer screen running a simple command line script running a looping simple math problem adding the result to the command line. The demonstrator opened a second window started a second similar process and then a third, fourth and so on. Each window was. updating its command line in real time, not just the window that had focus. It was pretty impressive at a time when Windows could only handle one process at a time in real time. Microsoft wha not able to duplicated the computing power of OS2 until they came out with Windows NT. Windows NT eventually became the OS we know today as Windows 10. 
iPadOD 13 has a MultiTasking capability where you can split the screen and open two different apps side by side.  You can even open 2 instances of the same app side by side.  If iPadOS can run multi threaded apps, then you should be able to open Youtube in split screen mode and view two movies side by side.   I will run this experiment and get back to you.


----------



## clee01l (Aug 17, 2020)

OK, here is what I discovered with my iPadPro. 
The YouTube app can not be invoked but one time and only full screen (i.e. no split screen mode). The same holds true with the Amazon Music app although the music continues to play when in background. 
The Notes app can be invoked in split screen mode. Thinking that I could outsmart iPadOS, I created a video and added it to an other wise blank note. I then went split screen and added another video to a new blank note. If multithreading and true nultitasking is possible on the iPadOS, then I should be able to see both videos side by side. Instead when one starts the other stops. There can only be one active video thread. From this I conclude there is no multi threaded capability. 
My iPadPro uses the A12 chip and the game might be changed by the time the A14 chip is available. My iPadPro has 512GB of combined RAM (like) and data storage. A MacOS App like LightroomClassic can consume easily 1 or more GB of RAM and much more in data storage. For those reasons, I don’t think there will ever be a LrC on the iPad. 


Sent from my iPad using Tapatalk


----------



## Johan Elzenga (Aug 17, 2020)

clee01l said:


> For those reasons, I don’t think there will ever be a LrC on the iPad.


I agree, and I think there are more reasons that just technical ones. Adobe already has Lightroom on the iPad, so why spend time and money creating a second Lightroom iPad version? Many Lightroom Classic users are afraid that Adobe intents to make Lightroom Classic obsolete one day. I am not afraid that this will happen any time soon, but creating a Lightroom Classic for iPad would be the exact opposite, and that also seems rather unlikely.


----------



## clee01l (Aug 17, 2020)

Johan Elzenga said:


> I agree, and I think there are more reasons that just technical ones. Adobe already has Lightroom on the iPad, so why spend time and money creating a second Lightroom iPad version? Many Lightroom Classic users are afraid that Adobe intents to make Lightroom Classic obsolete one day. I am not afraid that this will happen any time soon, but creating a Lightroom Classic for iPad would be the exact opposite, and that also seems rather unlikely.



I am only addressing the technical issue here. I do see an eventual replacement of LrC with LR. Although I agree, it will not new any time soon. However, a more function complete Lr might be achievable with the A14 chip whereas now it is limited by the functionality of the current mobile chipsets. 


Sent from my iPad using Tapatalk


----------



## mcasan (Aug 17, 2020)

I guess by this time next year....the Apple ecosystem could be a very different world.   Exciting times.


----------



## kimballistic (Aug 17, 2020)

Hi all, fun topic.  Five clarifications below:

First-  Cletus, your Notes app test only tested the overall Notes application code architecture, not whether the Notes app or the underlying OS are specifically multithreaded.

Second- Multithreading has been available to iOS/iPadOS application developers for at least 12 years,  since iOS 2.0 (released July 11, 2008):
See link: Apple Developer Documentation on NSThread

Background info: multithreading is not processor-technology dependent.  A processor with only 1 core can still run multithreaded apps.  The operating system kernel manages which thread is active at any given time (with time measured in milliseconds) regardless of whether your CPU has 1 core or 48 cores (and regardless of how many CPUs your computer has).

Multithreading was first introduced  in 1967:
See link: Wikipedia entry on Threading

While symmetric multiprocessing (2 or more separate CPUs per computer) has also been around since the 1960s, multicore processors (one CPU with multiple cores) were not introduced until 2001:
See link: Wikipedia entry on history of symmetric multiprocessing
See link: IBM taking pride in inventing first CPU with multiple cores

My point: there is no improvement needed in modern Apple handheld hardware or software to better support multithreading.  Multithreading has had 1st-class support since their introduction and the technology is decades old.

Third- regarding multitasking, there are two aspects to multitasking:

whether the core operating system kernel supports it.  iOS has supported and used multitasking at an operating system level since day 1 of the first iPhone and first iPad.  iOS is built on the mach kernel which has supported multitasking since its inception, just like any Unix derivation has since the 1970s.  To be clear, starting an App on the first iPhone or iPad did not suspend operating-system level tasks and processes.  They continued to run, sharing processor time with the user's App, as you would expect with an operating system kernel that supports multitasking.
whether the UI design allows multitasking at a user level.  iOS enabled user-level multitasking in 2010 with version 4.  The iPad picked it up a few months later.  See link:  iOS - Wikipedia
Fourth,- the general question of whether we will see "Apple Silicon"-compiled macOS apps on iPads: not without significant developer work  in rewriting their apps to target and test the iPad as a platform for their app.

Background info: macOS apps historically have been built using an Application Programming Interface (API) called AppKit that Apple provides.  AppKit is not available on the iPhone or iPad and never will be.  For practical purposes it is deprecated and developers are being encouraged to transition to Catalyst or SwiftUI.
See link: Apple Developer Documentation on AppKit
See link: Apple Developer Documentation on Catalyst
See link: Apple Developer Documentation on SwiftUI

Historically the iPhone/iPad have had a separate UI API called UIKit, which has never been available on macOS until Apple introduced Catalyst last year.
See link: Apple Developer Documentation on UIKit

As mentioned above, nowadays macOS apps can be rewritten to use either Catalyst and SwiftUI as their UI API.  However, once an app uses those APIs,  it still can't just "run" on the iPad natively.  These APIs don't imply the binary is universal.  Developers must still re-target the iPad (if they want to) with a separate build and slightly different UI design (for example, the iPad does not have a menu bar and does not handle user files in the same way macOS does).

Finally, fifth: will we see Lightroom Classic for iPad?   Likely not.  LrC of course uses Adobe's own homegrown UI API to keep consistency across platforms.  That's why it doesn't look like a macOS app.  instead it looks almost exactly the same on Windows and Mac.  But at some level in their code they have a platform-specific layer (to use the menubar, to use macOS open/save dialogs, to display _anything_ on the screen, etc), and I'd bet money on that layer relying on AppKit on the Mac, which is not available on the iPad.

So while an iPad LrC  might _technically_  be possible down the road if Adobe invests significant resources in rewriting LrC's OS-specific UI layer in Catalyst or SwiftUI... why would they, when they have a first-class mobile app already on the iPad that is cloud-friendly, mobile-friendly, and synchronizes edits with Lightroom Classic if one wants it to?  It makes no business sense.


----------



## mcasan (Aug 18, 2020)

From the XCode 12 page at Apple:

*"Multiplatform template*

New multiplatform app templates set up new projects to easily share code among iOS, iPadOS, and macOS using SwiftUI and the new lifecycle APIs. The project structure encourages sharing code across all platforms, while creating special custom experiences for each platform where it makes sense for your app."

Indeed the UI and file handling may need to be different on a Mac vs an iPad.  At least seperate versions would not need to be all new code from ground up.


----------



## PhilBurton (Aug 18, 2020)

I once worked at a company (Convergent Technologies, some of the IT people here may remember them) where we needed to transition the CTOS OS from 8-bit processors to 16-bit processors.  It never happened, because the software was not written with future migration in mind.   To thecontrary, Apple had apparently been working on an Intel-hosted OS for several years when they announced the transition from PowerPC to Intel.

So I don't think that Apple's OS or the developer tools are the real issue here.  It's whether or not all the third-party developers, including Adobe, have done sufficient planning.  Certainly key partners like Adobe have known about this transition for some time, under NDA of course.

Some smaller companies, with few resources, may simply fade away.  Adobe will be just fine, after some period of adjustment.

Phil


----------



## mcasan (Aug 18, 2020)

Indeed, Apple needs both Adobe and Microsoft up and running.
Reminds me of a Johnny Winter song, "Still Alive and Well".

"I'm still alive and well, still alive and well
Every now and then I know it's kinda hard to tell
But I'm still alive and well
Still alive and well, still alive and well
every now and then I know it's kinda hard to tell
Still alive and well."


----------



## Conrad Chavez (Aug 23, 2020)

clee01l said:


> OK, here is what I discovered with my iPadPro.
> The YouTube app can not be invoked but one time and only full screen (i.e. no split screen mode). The same holds true with the Amazon Music app although the music continues to play when in background.
> The Notes app can be invoked in split screen mode. Thinking that I could outsmart iPadOS, I created a video and added it to an other wise blank note. I then went split screen and added another video to a new blank note. If multithreading and true nultitasking is possible on the iPadOS, then I should be able to see both videos side by side. Instead when one starts the other stops. There can only be one active video thread. From this I conclude there is no multi threaded capability.


Your observations are correct, but the conclusions aren’t. What you are actually running into are some of the many self-imposed limitations of iOS or individual applications, but not the actual multithreading capabilities of the system. This is an important distinction that defines this whole debate.

It’s already well established that multithreading is possible in OS. It happens every time you use GPS to update location in the background while running another app, or every time you listen to an audio program while working in another app. It happens when I use my Cascable remote control app in split screen to run a time lapse on my camera while I check email on the other side of my iPad screen.

But the limitations you experienced are not because of the OS or the hardware. You got those results because  iOS and some applications restrict how much of that can be done. It’s been this way from the beginning, but Apple loosens those restrictions over time depending on how they feel about the overall user experience on the hardware available.

Having only one video stream available is NOT a technical limitation, it is an elective limitation that Apple chose to impose. You are correct that it isn’t possible, but it is not correct to conclude that iOS or Apple silicon is not multithreading. The two are not technically connnected, it’s correlation not causation. If Apple wanted to let you have two simultaneous video streams running, they would. This is the “Apple knows better” attitude that turns a lot of people away from  Apple. (This may be connected to how modern web browsers stop playing multimedia on tabs that are in the background, to save battery power on laptops, reasoning that most people are not going to productively watch two video streams at the same time.)

But the technical ability to multithread is proven by the iOS Picture in Picture capability. If you start a video in the Safari web browser or any application that supports PiP, you can tap an icon that puts it into a small floating video window, and continue watching that video smoothly in its little window while you work in another application. The video plays smoothly in the PiP window even if I’m playing a game. That’s a demonstration of practical multitasking/multithreading in iOS. (Because of Apple’s choices, if I start another video, it will stop the PiP video.)

But if I am in the actual YouTube app, I cannot put that video into Picture in Picture mode. Why? Not because of Apple Silicon. Not because of iOS. Not because of multitasking. Instead, that is an example of the YouTube app specifically not supporting Picture in Picture. Strangely, if I go to a video on the YouTube website in Safari (instead of the YouTube app), I can put that video in Picture in Picture. PiP also works in other apps like Vimeo. Just not YouTube. I bring this up as an example of where what appears to be a lack of multitasking, in this specific case, is actually an example of a developer choosing to not fully implement what is available to them in iOS.

It’s because of wrinkles like that, that you have to be careful how you conclude what is going on behind the scenes.


----------

