Linus Torvalds è una delle figure più rappresentative del mondo open source e non solo. Il geniale inventore del sistema operativo Linux ed attuale supervisor del kernel ha avuto anche modo di farsi conoscere negli anni per reazioni discutibili, dichiarazioni poco “politically correct” come il più recente post dedicato ai processori ARM destinati al mercato dei server.
In estrema sintesi Torvalds chiude brutalmente la porta ad ARM schierandosi dalla parte delle architetture x86. Seppur indebolite dalla vicenda Spectre/Meltdown, le CPU x86 sono e restano centrali nel mondo di sviluppatori e tecnici perché le sole in grado di garantire quell’omogeneità hardware e sicurezza di cui si parlerà a breve:
Qualcuno pensa che “il cloud” significhi che i set di istruzioni non contano. Sviluppo a casa e deploy nel cloud. E’ un’assurdità [il termine originale è molto più colorito ndr]. Se sviluppi in ambiente x86, vorrai allora effettuare il deploy su x86, perché sarai in grado di eseguire ciò che hai testato “a casa” (e con “casa” non intendo dire “a casa vostra”, ma nel vostro ambiente di lavoro). […] Sarai felice di pagare qualcosa in più per il tuo cloud hosting x86 semplicemente perché compatibile con quello che hai testato sul tuo setup locale e gli errori ricevuti saranno più comprensibili.
ARM come Unix?
Gli argomenti a sostegno della “tesi” di Linus sono i seguenti: in primo luogo che l’attuale mercato dei server è cresciuto e si è sviluppato ad “immagine e somiglianza” dei workload testati offline dai programmatori – nella maggior parte dei casi su macchine x86 con OS Linux o Windows e con tutte le garanzie derivanti da tale consolidata prassi. Quando si parla di codice, infatti, anche il più piccolo ma ignoto particolare può fare la differenza tra un progetto di successo ed un fallimento: certo, quasi ogni software può essere ricompilato ed eseguito senza problemi su qualsiasi architettura, ARM inclusa, ma il terrore persistente che qualcosa possa non andare come previsto è comune tra i developer – una dependency mancante, un inatteso calo prestazionale possono vanificare ore e giorni di lavoro.
In secondo luogo viene sottolineata a più riprese la totale assenza di una piattaforma di sviluppo su cui testare i workload che andranno a finire nel cloud:
Senza una piattaforma di sviluppo, ARM non ce la può fare nel mercato dei server. Cercare di vendere un modello hyperscaling 64-bit è un’idiozia quando non si hanno nè clienti nè workload perché non si è venduto un piccolo ed economico box [di sviluppo] […]. L’unico modo per cambiare le cose è dire “guarda, puoi effettuare dei deploy più economici su ARM, questo è il box di sviluppo sul quale puoi lavorare”. L’hardware è enormemente importante per gli sviluppatori. Credo seriamente che questo sia il motivo del successo dei personal computer e della [scomparsa di tutti gli altri suoi competitor].
Ed a chi lo accusa di avere una linea di pensiero “unixoide” risponde che ARM, in ambito hardware, sembra quasi ispirarsi all’operato di Unix in ambito software::
Unix ha perso. Certo, continua a vivere in Linux ma [non ha perso contro quest’ultimo, ha perso con Windows]. Anzi, probabilmente ha perso [fin dall’inizio] con Windows. Perché? Per lo stesso motivo [di ARM], ma da un punto di vista software. In entrambi i casi dov’erano gli sviluppatori? Su Windows e Linux perché era ciò a cui gli sviluppatori avevano accesso. Quando questi workload sono cresciuti e diventati dei “veri” workload [i developer] hanno continuato ad eseguirli su Windows e Linux, non li hanno mica spostati sulle piattaforme Unix nonostante fosse relativamente semplice nel caso di Linux. No, perché era [una cosa] inutile e senza senso.
I developer hanno continuato ad effettuare i deploy sulla stessa piattaforma. Esattamente quel che avviene oggi con le soluzioni x86.
Le reazioni alle dichiarazioni di Torvalds
Un portavoce ARM ha replicato affermando che “[l’azienda] apprezza il parere del signor Torvalds e concorda che disporre di una piattaforma di sviluppo end-to-end sia essenziale, ed è per questo che in settimana abbiamo compiuto un importante passo avanti annunciando la Neoverse N1 System Development Platform (SDP)”.
Salvatore Sanfilippo, creatore del database open source Redis, ha invece aggiunto che l’implementazione del supporto ARM è stata molto semplice e che agli sviluppatori non importa della riproducibilità dell’ambiente a livello architetturale.
Non bisogna poi dimenticare il palese interesse di Microsoft ed Apple nei confronti dell’architettura.
In un post successivo Torvalds ha corretto leggermente il tiro dichiarando di sospendere per il momento il suo giudizio, in attesa che l’hardware per lo sviluppo ed il deploy ARM raggiungano la disponibilità generale. “Ehi, magari riusciranno a sorprendermi” ha concluso.