ARM-Based Macs from the developer's perspective26th June 2020
A few days ago, Apple revealed its plans to integrate processors with ARM architecture in its desktops, leaving aside Intel processors with x86. But what does this mean for us developers? Currently, the vast majority of projects do not consider the architecture to which our software will be destined, since the heavy load is carried by compilers that allow us to distribute our software for different platforms. This does not mean that we leave the problem unattended in the medium and long term.
ARM is everywhere
First of all, let's talk about the elephant in the room. ARM architecture is everywhere: from our mobile devices to our vehicles, and even on our consoles and graphics cards. This is because ARM's business model is not manufacturing but the design and licensing of its processors. That is why companies such as AMD, Qualcomm, Nvidia, Nintendo, Apple among others, can have their own custom chips at a low cost. Also, with the internet of things gadget makers have enough processing power with low power consumption. That is why in the last decade this market has exploded, and surely there is an ARM processor near you.
Most of us work with very high-level languages and in our work we do not focus on low-level issues, such as compatibility for different processors. As I mentioned before, this workload is left to the compilers, which allow us to have binaries for any architecture. In the case of Java with the introduction of android, its virtual machine had to be able to run on ARM processors and the only thing the development community did was adapt the ecosystem to limited resources and improve performance. In the case of languages that depend on an interpreter, such as ruby or python, they work perfectly well on embedded systems or on the raspberry pi. Even in Japan, the use of ruby focuses more on this type of system. So this change should not concern the vast majority.
Third party dependencies
However, not all the code we produce comes from our hands. Many times we depend on the work of others, who in turn depend on others and so on. This practice of free software has made life easier for us and thanks to it we have avoided reinventing the wheel in each project. However, we may have dependencies that are tied to a certain architecture, and this may be happening without us noticing.
To avoid this we have to test our code on different platforms. The most accessible option would be to test our production project on a RaspberryPI or BeagleBone. Maybe our software requires much more processing power, but at least we will know if in the near future our dependencies work, or if we need to make adjustments.
But it works in my local
For those who are familiar with this phrase, "Brace yourself" because if you are a backend developer, we may say it more often than we are used to. Since the difference in the instruction set of our development environments, with our production environments, will be considerable. Although if we make the transition well, the problems in development environments could be annoying but manageable.
Fortunately, mobile development would benefit, since the applications would be developed in environments very close to mobile devices. Both the Android emulator and the iOS simulator will have a significant advantage.
ARM on the server?
Currently in the backend, our projects work in the cloud. Whether from Amazon, Google, or another. And while the data center market is entirely dominated by Intel, this does not mean that these cloud service companies are not looking for alternatives with a better cost benefit. In economic terms, reducing energy and cooling costs can have a great impact on the profits of these companies; since feeding and maintaining these facilities at an optimal operating temperature is really expensive, so in the near future it will be more common to see "eco-friendly" options in the backend, without the need to sacrifice performance.
In conclusion, ARM is a technology with more than 30 years in the market, which in the last decade has been embedded in various industries. And thanks to its thermal efficiency and energy consumption, it is very attractive for a future where efficiency is above raw performance. And this technological change should not take us by surprise, because whether we like it or not, Apple leads the trends in the market.