Un anno dopo la sua presentazione avvenuta a WWDC 2014, Apple dichiara durante WWDC 2015 che Swift è destinato a diventare open source entro la fine dell’anno. Quali conseguenze? Azzardiamo qualche pronostico.
Mettiamo subito in chiaro le cose: linguaggio di programmazione, non necessariamente solo uno strumento per macchine iOS/OS X e relativi sviluppatori. Certo è stato presentato come tale durante il passato WWDC 2014, ma questa è solo una delle potenziali applicazioni soprattutto quando l’autore dei compilatori LLVM e clang per iOS/OSX e del linguaggio stesso coincidono nel nome di Chris Lattner.
Open source significa che Swift potrà essere sfruttato da tutta la community qualora si rivelasse utile sfruttare il linguaggio all’interno di nuovi contesti. Apple non ha ancora rivelato né annunciato né proposto alcun utilizzo slegato da OSX o iOS, ma è già possibile azzardare qualche ipotesi. Per essere più credibile vorrei proporre un parallelo con JavaScript.
JavaScript è un linguaggio di programmazione anch’esso, ma proviamo a ricapitolare l’evoluzione che l’uso di questo ha avuto negli anni.
- Gli inizi (199X): uno strumento per inserire logiche dinamiche client-side all’interno di pagine web, ad esempio per cambiare un’immagine al passaggio del mouse (on mouseover).
- 2006: librerie JavaScript rendono immediato l’utilizzo delle richieste asincrone sul web (chiamate Ajax) e possibile scrivere intere applicazioni web senza la necessità di ricaricare la pagina all’interno del browser. La libreria jQuery scritta in JavaScript diventa velocemente la regina tra i concorrenti trasformandosi de-facto nel sinonimo del linguaggio stesso lato client.
- 2009: JavaScript server-side risorge dal seme iniziale di Netscape Enterprise Server (1994). JavaScript è ora un linguaggio completo utilizzabile per la produzione di una intera applicazione, sia nella sua component frontend client-side che per il backend server-side.
Cosa ha consentito ad un linguaggio come JavaScript di evolvere verso nuovi utilizzi completamente slegati da quello iniziale? La creazione di motori e librerie utili a colmare i bisogni dell’industria e della community. Community open source, in larga parte.
Potrei anche raccontarvi una storia simile lato Microsoft per il linguaggio C# ed il compilatore Mono.
Oggigiorno il backend di un servizio iOS (ad esempio l’interfaccia REST di un web service/application), salvo rare eccezioni aliene al mondo open-source e sotto la massa critica per l’uso in produzione, non è scritto in Objective-C né in altro prodotto Apple. Perdonate la semplificazione se ritengo poco utile confrontare il numero di servizi appoggiati da Linux a quelli da Darwin.
È ovvio dove sto andando a parare: Swift potrebbe diventare il linguaggio per lo sviluppo di applicazioni server-side (ma non solo) da eseguire in ambienti concorrenti, ad esempio Linux o Windows. Sarà forse possibile condividere del codice Swift tra la nostra app per Apple Watch ed il nostro server Linux? È una ipotesi, e questo è il mio invito a crederci.