TL;DR: Apple Macs are transitioning away from Intel chips to their own Apple Silicon. The next version of macOS - “Big Sur” - will support these new processors. Developers will have to make changes to their code to support these new Macs. The scope of work for Rhino for Mac is currently being investigated.
Yesterday, during the WWDC Keynote, Apple announced they are beginning the transition away from Intel processors to their own “Apple Silicon” SoCs, which are ARM processors, like those found in iPhones and iPads. Apple plans for a “two year transition” and outlined the tools and technologies for developers:
The upcoming version of Xcode (12) will also contain the SDKs and tools necessary to help developers transition to the new processors. Apple claims that this effort takes “about a week or two of engineering effort.” They have also created prototype hardware with the new processors for developers, which they plan to ship shortly.
After the Keynote, more details were revealed in the Platform State of the Union. One of the key technologies for this transition is called “Rosetta 2,” which is an emulation layer built into macOS Big Sur that allows applications targeting Intel processors to run on the upcoming Apple Silicon Macs. (Rosetta was used during the transition between PowerPC and Intel, back in the day). Apple is claiming great performance running under Rosetta, but it is meant as a transitional technology, not a long-term solution. During this presentation, they also talked about upcoming patches to key open-source projects - like Mono - to help the transition along.
Ok, what does all this mean for Rhino for Mac?
The short answer is: we do not know yet and there is a lot of investigation to do before we understand the scope of work. At this juncture, we have more questions than answers.
One aspect of all this that we are very curious about is the fate of OpenGL on the Mac platform. Two years ago, Apple deprecated OpenGL in favor of Metal. Rhino for Mac has yet to make the transition to Metal (this is a significant project). We will be curious to see how this move to Apple Silicon impacts our efforts on the Metal front. During the Platform State of the Union, Apple stated that they have a patch to the open-source Blender project ready to help support Apple Silicon. As Blender is also an OpenGL application, this is interesting news for us.
In the past decade, we’ve made major efforts to write Rhino as a cross-platform application. We’ve invested in tools and processes that enable us to deliver Rhino on both Windows and Mac, as well as support a cross-platform plugin architecture. This adds complication as all our tools and processes must take this new target architecture into account.
Rhino reads and writes many different file formats and we rely on many third-party libraries to support this. These libraries are not under our direct control and will have different constraints to transitioning than we do. These libraries often target older versions of macOS and sometimes require effort on our part to support.
What next?
We have access to the Big Sur beta and are currently testing and investigating. We have applied for prototype hardware, but are awaiting a response to see if we are selected (we presume the number of developer-preview Macs is limited).
As usual, we plan to be as open and transparent about this as we can as we all get a better understanding of the issues. It would be irresponsible of us to make promises we cannot keep. Despite Apple’s evident and considerable efforts to make this easy on developers as possible, we are deeply skeptical that this will require only “a few weeks of engineering effort” on our part. This is a huge transition for Apple and it asks a lot of developers. In the coming weeks and months we’ll be getting a better technical understanding of the effort and we’ll share our progress here.
Yes, but this one goes to eleven
One last random detail: macOS Big Sur’s version number is 11…so for those of you who still consider macOS to be “OS X”, well, you’re out-of-luck. Let’s all hope the transition to version 11 isn’t as painful as a spinal tap.