I veckan så genomfördes Apples WWDC konferens digitalt. Man presenterade en del nyheter med mjukvara, men det mest intressanta för mig var beskedet att man nu kommer att lämna Intel som chip-leverantör och börja använda egna Arm-baserade chip i alla produkter.
Det betyder att inom några år så går det inte längre att köpa en Mac med en CPU som är baserad på x86 instruktioner.
Redan nu så är MacOS 11 (japp, OS X är ersatt) anpassat för den nya arkitekturen tillsammans med alla Apples egna program. Adobe och Microsoft jobbar med versioner som skall kunna köras direkt på den nya arkitekturen.
För andra program, så presenterar man nya versioner av X-code och liknande för att utvecklare skall kunna skriva om sin källkod för att passa de nya instruktionerna.
Många utvecklare som har Apple som en viktig plattform kommer så klart att haka på här och börja utveckla nya versioner för de nya datorerna, men för övriga så kommer man att behöva förlita sig på Apples egna kompatibilitetsfunktioner som Rosetta2. Detta är en funktion som skall göra det möjligt att köra program avsedda för x86 på det egna operativsystemet och ”översätta” instruktioner i realtid. Att detta fungerar är det ingen tvekan om då motsvarande redan finns i andra operativsystem som ”emulatorer” i större eller mindre utsträckning. Man kommer även att kunna köra program via virtuella datorer i Parallells, exempelvis Linuxversioner. Allt detta har så klart ett prestandapris, men hur mycket är oklart.
Frågan jag ställer mig är vad som kommer att hända med många projekt med öppen källkod, som QGIS.
QGIS är utvecklat med med stöd av Qt, som är mycket vanligt inom öppen källkod. Samma kod kan användas för att skapa binärfiler för Windows, Linux och Mac. I alla fall fram tills nu…
Jag vet för lite om nya MacOS, X-Code och liknande för att säkert kunna hävda det ena eller det andra, men jag är ganska övertygad om att man kommer att behöva göra ändringar i källkoden för QGIS för att den skall kunna köras på en Arm-baserad Mac. Det kan vara förändringar i den egna koden (troligtvis) men framför allt i utvecklingsmiljön Qt (absolut). Om detta inte kan göras så kommer QGIS för Mac i framtiden endast att kunna köras i ”kompatibilitetsläge”.
Hur detta påverkar prestanda i program som QGIS har jag ingen aning om. Det kanske inte har någon praktisk betydelse för de flesta användare, men det är en osäkerhet som behöver hanteras.
Så, är detta slutet för öppen källkod på Mac? Det hoppas jag verkligen inte, och förhoppningen är för övrigt att det inte kommer att krävas speciellt mycket att anpassa källkoden till nya arkitekturen, men det är nog tyvärr mest en fråga för Qt.
Jag tror inte att Apple kommer att begränsa möjligheterna att installera program från tredje part, men om man skulle göra det så finns risken att alla program måste installeras via Apple Store, och det innebär sannolikt dödsstöten för öppen källkod på Applehårdvara. Redan idag så är det i princip omöjligt att köra program med GPL licens via Appstore på iOS enheter.
Är du Mac-användare? Planerar du att köpa en ny Mac i närtid? Då hade i alla fall jag valt en Intel-Mac tills jag visste hur mina program kommer att fungera på de nya datorerna.
Byte av CPU har gjorts tidigare med Apple, när de gick från Motorola 68000-maskiner till x86.
Sedan så fungerar ju QGis på ARM redan i Linux. Så jag ser inte att det är några andra ändringar än vad som brukar göras när Apple uppdaterar sina ramverk för grafik (och OS). Så jag tror inte att det blir några större problem för OSS. Vi har redan stöd för ARM, som kommer att bli bättre testat nu. Vi har haft stöd för många olika CPU:er sedan länge.
Att det kommer bli problem för nyare specialskrivna program för Apple är jag övertygad om, de behöver ju inte ta hänsyn till olika arkitekturer. Det måste exempelvis Debian, som inte bara har officiellt stöd och utvecklingsstöd för en eller två handfull av CPU:er, utan även en handfull OS. Ja, Debinan har även Kernel BSD och Hurd.
Så ja, problemet är inte med OSS, tror jag.