Will MT5 be updated for macOS to run as a universal app?

 
As it currently stands, the macOS version of MT5 is built for Intel based Macs only [as shown in the attached screenshot - General>Kind>Application (Intel)], so when used on Apple Silicon devices, it does run (thanks to Rosetta), but not very well unfortunately. I'm currently using an M2 MacBook Air, which in terms of performing capability should run MT5 very easily, but unfortunately that's not the case. So what developers have been doing is creating universal apps that run for both Intel and Apple Silicon based Macs. So I was wondering if maybe now that Intel Mac devices have been discontinued that perhaps we will see an update to cater to those with newer devices so that scrolling charts and adding technical lines isn't slow?
MQL5.community - User Memo
MQL5.community - User Memo
  • www.mql5.com
You have just registered and most likely you have questions such as, "How do I insert a picture to my a message?" "How do I format my MQL5 source code?" "Where are my personal messages kept?" You may have many other questions. In this article, we have prepared some hands-on tips that will help you get accustomed in MQL5.community and take full advantage of its available features.
 
AhmedMuttalibi:
As it currently stands, the macOS version of MT5 is built for Intel based Macs only [as shown in the attached screenshot - General>Kind>Application (Intel)], so when used on Apple Silicon devices, it does run (thanks to Rosetta), but not very well unfortunately. I'm currently using an M2 MacBook Air, which in terms of performing capability should run MT5 very easily, but unfortunately that's not the case. So what developers have been doing is creating universal apps that run for both Intel and Apple Silicon based Macs. So I was wondering if maybe now that Intel Mac devices have been discontinued that perhaps we will see an update to cater to those with newer devices so that scrolling charts and adding technical lines isn't slow?


So there's actually two separate issues here:

  1. macOS vs Windows (operating system).
  2. Intel vs ARM processors (hardware/chip architecture)

These are available in all four combinations: 

  • macOS on Intel (although Apple doesn't make these any more, so they are slowly disappearing).
  • macOS on ARM (these are the new ASi/Mx Macs  (ASi = Apple Silicon, Mx = M1/M2/M3k, all different names for the same thing) that are entirely the present and future of Macs)
  • Windows on Intel (the vast majority of Windows PCs)
  • Windows on ARM (slowly becoming a thing, and likely the future, but still a ways to come).

MT5 is written entirely for the third combination only: Windows on Intel.  There is no version of MT5 that runs natively on any kind of Mac, and there is no version of MT5 that runs natively on any kind of ARM processor.

The "Mac version" of MT5 is simply the Windows version wrapped up inside another app (called Crossover -- https://www.codeweavers.com/crossover).  So your screen shot is actually reading the application type of the Crossover wrapper, not MT5.  As far as that running version of MT5 is concerned, it's running on a standard Intel Windows PC, and isn't even aware that it's running on a Mac.  The Crossover application is handling the part where it makes MT5 think it's running on a PC.  This works because of a process called virtualization.

This virtualization allows an Intel Mac can to run Intel Windows OS and apps.  It allows an ARM Mac to run ARM Windows OS and apps.  Virtualization doesn't have to do very much because the lowest level hardware instructions are the same.

On the other hand, if you want to run any Intel app on an ARM chip (regardless of the OS) then the low level hardware instructions are completely different and a process called emulation has to translate them. This is essentially what Rosetta does. The ARM version of Windows has built into it something similar that allows Intel Windows apps to run on the ARM version of Windows (although I don't know what that's called). Normally, any kind of emulation is a very processor-intensive process and makes everything run extremely slow. However Apple and Microsoft have both built some efficiencies in Rosetta and the similar thing on Windows, that come with some trade-offs that won't affect most people.  It also works well because the ARM chips are just so much more efficient and powerful (per dollar at least) than the Intel chips, that the ARM chips can run and translate everything so fast, that running an Intel app on an ARM chip feels about as fast as running it natively on the Intel chip. The reverse (getting an Intel chip to emulate an ARM chip is much much slower, but no one's trying to do that thankfully).

What Crossover does is pretty amazing, but there's only so much that's possible or feasible. Crossover is currently entirely built for macOS running on Intel processors, and runs Intel Windows apps in that environment. It runs pretty well on ARM Macs because Rosetta is extremely good at what it does, but as you're experiencing, it can only do so much, and it's far from perfect. Meanwhile sometime in the next few years Apple will discontinue Rosetta and only support native ARM apps on Mac from then on.  Codeweavers has commented on their plans for Crossover on ARM Macs here: https://www.codeweavers.com/blog/jramey/2021/05/19/what-is-our-technology-roadmap-for-apple-silicon.  This will achieve at least one thing, and possibly (but unlikely) two things.  The thing it will achieve is it will allow ARM Macs to run apps that are built to run natively on Windows on ARM. The thing it probably won't achieve is allow Macs to run apps that are built for Windows on Intel.

So back to MT5:  The problem here is (as noted above) MT5 is one of those apps: built entirely for Windows on Intel. It only runs on Intel Macs thanks to Crossover translating between Intel Windows OS and Intel macOS instructions.  And Crossover only runs on ARM Macs because Rosetta handles the next step of translating between Intel macOS instructions and ARM Mac instructions. So, when Rosetta is done, even if Codeweavers builds an ARM version of Crossover (which will handle translation between ARM Windows and ARM Mac) it almost certainly won't handle translation between anything Intel and anything ARM, so then MT5 won't run on ARM Macs.  At that point, MT5 on Mac is over.

I for one wish deeply that MetaQuotes would build a version of MT5 that runs natively on Mac (Universal) and not try to shoehorn it through Crossover.  I expect that would be an extremely major undertaking and it's probably not worth their while, at least not any time soon.  I imagine at some point they might rebuild it for ARM Windows, at which point we'll be able to run it through ARM Crossover on ARM Macs but I'm not sure I'm holding my breath for that.

On the other hand, someone else could potentially step up to the plate and build an app that runs natively on Macs that is compatible with MT5 brokers and does all the good stuff that MT5 does, and even fixes all the terrible stuff that MT5 does very badly.  That'd be something.  And as a matter of fact, I've been working on such a project like that for the last couple of years, and I'm getting closer.

 If anyone would like to help by sponsoring this effort, I'd love to talk to you. 😉 

 

PS. I also wrote an extensive post about a year ago on this topic here:  https://www.mql5.com/en/forum/392379#comment_28662015

MT5 on M1 Apple Silicon
MT5 on M1 Apple Silicon
  • 2022.03.31
  • www.mql5.com
If MT5 is installed on an Apple M1 machine will it take advantage of the extra cores? I refer to MT5 installed under Wine rather than Parallels...