Sebbene i container siano emersi dal mondo Linux, Microsoft li ha abbracciati con tutto il cuore. A partire da Windows Server 2016, l’azienda ha iniziato a offrire due tipi di container compatibili con Docker: Windows Server e Hyper-V. E sei anni dopo quel fatidico giorno in cui Microsoft ha annunciato di amare Linux, gli sviluppatori oggi collegano regolarmente le app nei container Docker a qualsiasi distribuzione Linux supportata dal Windows Linux Subsystem o dal cloud di Azure.

Ma … container sul desktop? Sarebbe un cambiamento radicale nel modo in cui Windows gestisce le applicazioni desktop, consentendo alle app di Windows di installarsi con la stessa rapidità e facilità delle app mobili. In effetti, questo sembra essere il piano per il bizzarro Windows 10X, programmato per arrivare con un nuovo dispositivo della gamma Surface questo autunno.

Annunciato a ottobre 2019, Windows 10X è stato infatti sviluppato per il Surface Neo, un dispositivo simile a un libro che si apre per rivelare due schermi affiancati. Il fratellino del Neo, il Surface Duo, esegue un sistema operativo Android modificato anziché Windows 10X (e include funzionalità di telefonia, anche se Microsoft rifiuta saggiamente di chiamarlo smartphone). È interessante notare che al 365 Developer Day di Microsoft il mese scorso, la società ha annunciato che il suo SDK a doppio schermo per Xamarin.Forms può essere utilizzato per sviluppare applicazioni compatibili con entrambi i dispositivi.

Quindi dove entrano i container in questo scenario? Bene, prima di tutto, questi non sono container Docker. Microsoft sembra invece utilizzare i container per dimostrare di aver appreso dai tentativi passati come portare gli sviluppatori in un nuovo mondo che rompe bruscamente con il passato (Universal Windows Platform).

Invece di forzare gli sviluppatori a creare nuove applicazioni da zero per Windows 10X, questi possono avvolgere quelle app in container che includono un file system e un registro compatibili con le versioni precedenti che consentono alle app Win32 di funzionare con poche modifiche. Gli sviluppatori più ambiziosi possono inoltre scrivere sulle nuove API 10X in modo che le app possano estendersi sui due schermi e accedere ad altre funzionalità native.

container

Ma indovinate un po? A quanto pare tutte le app per Windows 10X vengono eseguite in container. Windows 10X offre tre tipi di container: Win32, MSIX e Native. Come prevedibile, i container Win32 possono eseguire applicazioni Win32 su Windows 10X più o meno non modificate, ma queste app assorbono anche la maggior parte delle risorse di sistema e comportano il più alto rischio di incompatibilità. I container MSIX offrono una maggiore stabilità, ottimizzano la larghezza di banda della rete e riducono lo spazio su disco richiesto da un’applicazione, ma richiedono maggiore impegno da parte degli sviluppatori quando “impacchettano” le app Win32.

Sono i container Native che ospitano le app UWP e che richiedono il minimo delle risorse di sistema e di energia, offrendo al contempo la migliore esperienza utente e controlli di sicurezza/privacy. Chiaramente, Microsoft preferirebbe che gli sviluppatori usassero i container Native e le funzionalità 10X native, ma con tre tipi di container nessuno è obbligato a farlo.

La cosa affascinante è che, con i container Win32 e MSIX, Microsoft sta fornendo un modo per eseguire le applicazioni meno recenti in un ambiente nuovo di zecca, oltre agli strumenti di Xamarin.Forms che consentono agli sviluppatori Windows di creare app che funzionano sia su 10X che su Android. Questi due progressi suggeriscono che Microsoft potrebbe aver finalmente trovato il modo di guardare a versioni future (e migliori) di Windows in grado di rompere con il passato.

E cosa potrebbe contenere quel futuro? “Chiamatemi pazzo, ma Windows 11 potrebbe funzionare su Linux”, ha detto recentemente Steven J. Vaughan-Nichols. Come sottolinea Steven, Windows 10 continua a soffrire di problemi grandi e piccoli ed è sempre sembrato un sistema operativo leggermente malandato e continuamente rattoppato. La speculazione di Steven secondo cui Microsoft potrebbe semplicemente sostituire il kernel NT di Windows con il kernel Linux potrebbe non essere così inverosimile come sembra, se si considera che, con Surface Duo, Microsoft è in procinto di rilasciare il suo primo dispositivo Android.

Immaginate questo scenario. Grazie ai container per la prima volta nella storia di Windows, Microsoft potrebbe guardare a un futuro molto meno incatenato dal suo passato, a un futuro con maggiore stabilità, installazioni di app senza problemi e il supporto della più solida comunità open source al mondo. Windows su GitHub? Perché no?