


It soon turned out that we had to re-write a lot of the JIT system, a core component of the JVM itself, which was something we had little to no experience in.Įventually, we did manage to solve this issue with the help of Azul Systems. To this end, we began to investigate how we could handle this transition with grace. Our IDEs couldn’t just run adequately on the M1, they had to run well on them. Although we had been experimenting with running applications on Raspberry Pi computers, this was a completely different issue the M1 meant that ARM-based computers would soon become mainstream. The change to Apple Silicon meant that we’d need to re-write a lot of JetBrains Runtime, to make sure that we had adequate performance. Furthermore, there are many facets of the runtime, and we do not know every little crevice of it, rather we focus on the part of the code that handles the rendering of UI on screens. The JetBrains Runtime ships with all our IDEs and although this gives us more control, it also means that we need to have a large team to maintain this codebase. In order to remedy this, JetBrains forked the OpenJDK project in order to facilitate better control over how the IDEs looked on Macs a well as other HiDPI screens JetBrains Runtime was born and we bundled it with our IDEs from 2014. With the deprecation of Java on the Mac, certain things such as font-rendering on retina screens became more difficult using the version of Java that Oracle released. This meant that every time a new version of Java was released, Apple would need to patch it for their own operating system, so that it did not have any security vulnerabilities. Up until 2010, Apple bundled their own version of Java with their operating system. However, our IDEs are built on top of our own custom Java Runtime Environment, and that is in no way a simple program. In general, if you have a simple program then Rosetta 2 should be able to translate your program without significant overhead.

A change of this magnitude has not happened since the move from PowerPC to Intel’s x86 architecture.Īlthough the performance was somewhat acceptible on Rosetta 2, Apple’s new translation engine that translates the x86 instruction set to the M1’s ARM-base instruction set, it was not good enough for our IDEs. Here at P圜harm, this would mean major changes to the way we build our software.

In June of last year, Apple announced that the Mac would transition to Apple’s own chips, called Apple Silicon.
