Any Programmers on here? I have a question…

So, there is another beta of Adobe on M1 Mac’s and it is a giant leap from the first one.

My question. As an IT guy, I am guessing that all the people pushing their apps to Apple’s processor *should* really help Windows on ARM.

Am I correct in that or would a lot of changes be necessary to take say the ARM/Apple version of Premiere Pro and move it to Window on ARM?

Just curious.

Conversation 12 comments

  • jimchamplin

    Premium Member
    19 September, 2021 - 6:18 pm

    <p>There should be very little needed, honestly, for it to run. Generally just an option in the compiler will get the code running.</p><p><br></p><p>…</p><p><br></p><p>… But that doesn’t mean it will run well. Applications like Photoshop or Premiere are highly optimized, which requires that a lot of more low-level coding that targets a particular arch, or sometimes even a particular chip. In the case of Apple Silicon, since there will be at most two, perhaps three in play at a time, I wouldn’t be surprised if Adobe targets individual CPU designs for maximum performance. That would let them squeeze every ounce out of these new systems. The Snapdragon line use the ARM ISA, but they have architectural differences that could make very low-level code malfunction. Say, if Adobe uses the Neural Engine for AI-acceleration on visual filters. That would likely instantly fail on a Snapdragon, as they have their own proprietary AI engine. Just one example.</p><p><br></p><p>Some software can simply be recompiled for the new architecture, but only relatively simple applications. These are not those kinds of applications.</p>

    • wright_is

      Premium Member
      20 September, 2021 - 5:33 am

      <p>Except that that would be Xcode on the Mac, using Swift or Objective C and the Mac libraries and objects and Visual Studio using C#, C++ etc. and Win32 or .Net on Windows… So it would be like taking unleaded petrol from the Mac and pouring it into a diesel engine called Windows. It just wouldn’t work.</p><p><br></p><p>Some of the internal functions, for example, image transformation, might be the similar on both platforms, but the code to read the image from disk or direct from a camera will be 100% different, as will the UI code and the code to display the image and the code to write the end result back out to disk.</p>

  • jimchamplin

    Premium Member
    19 September, 2021 - 6:21 pm

    <p>Edit: My first few sentences make it seem like Photoshop could simply get spat out of a their development environment built for a different ISA and it would successfully run but slowly. </p><p><br></p><p>It likely wouldn’t run at all. The point is that entire portions may need to be rewritten to function.</p>

    • wright_is

      Premium Member
      20 September, 2021 - 5:34 am

      <p>At the very least, the code will need to be translated from Objective C/Swift to C++/C# or similar.</p>

  • christophercollins

    Premium Member
    19 September, 2021 - 11:45 pm

    <p>Thank you for your detail answer. Compilers and what not is something I’ve never learned about, as I’ve never been a coder. Everything you said makes good sense.</p><p><br></p><p>I’ve kind of always hoped all the M1 software would help WoA.</p>

    • wright_is

      Premium Member
      20 September, 2021 - 5:36 am

      <p>The lessons learned on how to optimize code for M1 ARM might be valuable to optimizing for Qualcomm ARM, but the languages and libraries used on the two platforms are completely different.</p>

  • usman

    Premium Member
    20 September, 2021 - 3:51 am

    <p>It depends on how they’ve built their components for cross-platform. If everything is in C or C++ then possibly a chunk of the re-platforming and recompiling from x86/x64 to ARM64 would have been done.</p><p><br></p><p>However it doesn’t mean they’ll run the same on Windows Snapdragon compared to M1, there can be optimizations per platform, such as the AI processors and video encoders being on the M1 but not on the Snapdragon. </p><p><br></p><p>Adobe took forever to roll out Intel QuickSync support when practically every Intel CPU had a GPU onboard to accelerate encoding, whereas IMovie and Final Cut supported it many years prior. So it could be that Adobe may not leverage platform-specific features for years to come</p>

  • wright_is

    Premium Member
    20 September, 2021 - 5:30 am

    <p>Very little is done directly in ARM assembler these days. It is all done in high level language libraries. That means that you are probably using Swift or, if it is legacy code, Objective C on the Mac and something like C# or maybe C++ on Windows, with .Net and/or Win32. (Overly simplified.)</p><p><br></p><p>Some of the functions for transforming image data might be the same on all platforms, but all of the interface code is unique to the platform. Reading/writing from disk, user interface, interaction with system objects etc. will all need to be re-written.</p><p><br></p><p>That said, using assembler would make the code even less portable. The instructions might be the same, but the underlying hardware will be very different. Processor pipelines, interfaces with memory, graphics and I/O devices, like disks, keyboards, mouse etc. will all be bespoke. You would need to write your own libraries for each individual platform to overcome that problem.</p><p><br></p><p>Unless you use something platform independent, like Java or Electron. But that makes the applications bloated, slow, unreliable and not really integrated with the host platform.</p>

  • paradyne

    20 September, 2021 - 10:36 am

    <p>In ‘general’ the ‘main problem’ with porting is not the developers own app for which they have the source code. You flip a compiler switch, maybe fix up a few things the compiler complains about that you didn’t notice were wrong before and there you go.</p><p><br></p><p>The ‘problem’ is with all the other libraries your app makes us of, which might only be available to you as compiled binaries. If the developer of those hasn’t yet moved to ARM64 (they might have the same dependency issue as well) then you’re stuck.</p><p><br></p><p>Or at least you had been. With the ARM64EC tech coming to Windows 11 (and 10 as well I believe, but all ARM PC’s can run 11 anyway) that situation is about to change. Now the developer can flip the compiler switch and then update the individual dependencies as they get converted. The ap can mix native ARM64 code with x64 libraries until they are updated. It’s broken the dependencies that blocked everyone from even getting started on the porting process.</p><p><br></p><p>That’s what will really help, more so than the M1’s existence.</p>

  • lvthunder

    Premium Member
    20 September, 2021 - 11:14 am

    <p>They came out with Photoshop Beta on WOA the same time as the M1 so it must not be too much more work. Plus they have been working on this for a while now as well since they have Photoshop on the iPad.</p>

    • wright_is

      Premium Member
      21 September, 2021 - 12:26 am

      <p>More likely they had a Windows team converting the Windows code base to WOA at the same time they had an Apple team converting the Mac code base to M1.</p><p><br></p><p>They have to show Windows users that they are still important, even if M1 is the future of Mac and Snapdragon is just a part-time hobby for Microsoft.</p>

  • christophercollins

    Premium Member
    21 September, 2021 - 1:08 pm

    <p>I just wanted to come back around and thank everyone for all the information you shared with me here. I do truly appreciate it.</p>

Windows Intelligence In Your Inbox

Sign up for our new free newsletter to get three time-saving tips each Friday

"*" indicates required fields

This field is for validation purposes and should be left unchanged.

Thurrott © 2024 Thurrott LLC