Thank you for the references. Yes, that is correct.
The main reason why we distribute the application as 32-bit on Windows is to simplify distribution. We have customers running both 32-bit and 64-bit Windows versions and also ARM Windows machines. Only 32-bit applications can run in the same binary format on all of these operating systems. The alternative would be to distribute a bundle supporting all of these platforms, or three different setups that the customer would have to choose from. This would complicate the situation both for end-users and system administrators but also for us.
We evaluated different strategies for potential native support for all three platforms:
-
Distributing one version with support for all three platforms
(+) No need for choice for the user
(+) Easily deployable through group policies
(-) Size of the distribution (3x the size of the download, only 1/3 is actually used) -
Distributing separate setup for each platform
(+) The size of the distribution stays the same
(-) Deployment through group policies to a diverse environment (mixed 32-bit, 64-bit or ARM machines) is troublesome
(-) The user has to download the correct version (heuristics on web site can help) -
Install bootstrapper that would download the correct package
(+) Size of the distribution
(-) Needs to use an external tool (ie. not purely built-in Microsoft Installer)
(-) Deployment through group policies is troublesome
(-) Offline installation needs to be done differently
Unfortunately, none of the strategies work well for every possible use case and hence we would likely need to offer more than one option to even cover all the scenarios we already support today.
And as I said before, there is no visible performance penalty of running the application as 32-bit because the dominant operations are not CPU bound. They are mostly constrained by the disk and network throughput performance. Also, the reliance on the .NET platform allows us to use even recent CPU extensions in the 32-bit mode without resorting to supporting the lowest common denominator when it comes to CPU models.
For now, we have decided to keep the setup simple for the benefit of both end-users and system administrators. We may reevaluate the decision if the 32-bit Windows systems go out of support or their usage drops significantly.
On macOS the situation is different. Thanks to the tighter control of the platform hardware, Apple has dropped 32-bit support on its platforms entirely. Hence, eM Client always run as a 64-bit app.