Un anno fa Microsoft ha acquistato GitHub, il più importante e popoloso contenitore online collaborativo per scrivere codice. Nonostante nell’immediato dell’acquisizione ci fossero state polemiche dato che il servizio è utilizzato gratuitamente prevalentemente per progetti open source e free (anche se sempre più spesso GitHub viene usato in modalità a pagamento e chiusa per progetti software aziendali), Microsoft ha iniziato negli ultimi anni in effetti a perseguire una strategia di apertura al mondo di Linux e dell’open source per attrarre la massa critica degli sviluppatori e recuperare centralità nei servizi cloud, quindi le polemiche e il ventilato “sciopero” o “sabotaggio” di GitHub è rapidamente scemato fino a scomparire.
I numeri dell’utilizzo di GitHub infatti sono sempre più positivi e Microsoft adesso può vantarsi di possedere un social verticale per il mondo dei programmatori. A parte questo, GitHub (che continua ad operare in maniera indipendente) ha rilasciato il suo rapporto annuale “Octoverse” (giocando sull’icona del sito, un gatto-piovra con otto tentacoli) che risuona un po’ come lo stato della nazione Internet per quanto riguarda la programmazione. Vediamo cosa dice.
Tanto per cominciare adesso la platea degli sviluppatori è cresciuta arrivando a quota 40 milioni in tutto il mondo, e per la prima volta la percentuale di sviluppatori che contribuiscono a progetti da fuori dagli Stati Uniti, dove GitHub è nato, è nettamente superiore a quella degli americani: 80% contro il 20%. In forte crescita soprattutto l’Africa. Ma non c’è solo quello.
Secondo le statistiche rilasciate il linguaggio di programmazione più utilizzato è ancora JavaScript, seguito a sorpresa da Python che supera Java, al terzo posto. Cresce veloce Dart, seguito da Rust, HCL, Kotlin e TypeScript.
Invece, i progetti open source più importanti per totale di contribuzioni sono stati Visual Studio Code o VSCode di Microsoft (19,1K), Azure Docs sempre di Microsoft (14K) e Flutter (13K). Seguono a una certa distanza da TensorFlow di Google (9,9K) e da Kubernetes (6,9K) mentre in coda tra i big c’è il React Native, il framework creato da Facebook per il web.
Da un altro punto di vista, guardando alle tendenze, si può osservare quali sono i repository di codice per argomento che stanno crescendo di più: “Deep learning”, “Natural language processing” e “Machine learning” sono infatti i più veloci nel corso dell’ultimo anno.
Le considerazioni che si possono trarre da questi primi dati (sul sito di GitHub si può trovare il dettaglio degli altri numeri) è triplice. Innanzitutto procede rapidamente l’occupazione di GitHub da parte degli sviluppatori che si muovono in ambiente Git e a tendere è probabile che ci sarà una ulteriore migrazione di linee di codice di prodotti Microsoft aperti (senza contare quelli chiusi) per aumentare il coinvolgimento della comunità e quindi allevare sviluppatori per il canale vendita e post-vendita dei prodotti Microsoft, che è poi il vero obiettivo dell’azienda, cioè essere sempre rilevante in un settore nel quale le tecnologie soprattutto cloud stanno in parte diventando commodity ed è necessario avere persone che sappiano sfruttarle per realizzare prodotti e portarli al cliente finale.
C’è anche un secondo dato che riconosce come sia sempre più rilevante dal punto di vista del codice che viene scritto oggi sia il settore dell’intelligenza artificiale (con le parole chiave che emergono più spesso nei vari progetti) sia lo sviluppo di tecnologie di base che abilitano questo tipo di progetti. Il cloud per addestrare le reti dei sistemi di machine learning (TensorFlow) e i software di gestione dei container per ottenere carichi di lavoro più leggeri e facilmente spostabili oltre che orchestrabili (Kubernetes).
Terza considerazione, l’importanza crescente della collaborazione nella realizzazione del codice. L’attività di scrittura del codice è sempre meno uno sport in solitaria e sempre più uno sport di squadra. Richiede paradossalmente meno talento assoluto per il codice, meno capacità di inventare hack molto intelligenti, ma sempre più capacità di coordinarsi, fare debug, riuscire a leggere e commentare in maniera intelligente e standard il lavoro. Da questo punto di vista ambienti come GitHub sono sempre più importanti e quasi mai insegnati negli ambienti in cui si impara a fare coding. Però, sono quelli che fanno sviluppare realmente gli skill “soft” in ambito informatico che permettono di trovare rapidamente lavoro.
Anche volendo perseguire una carriera di programmatore “in solitaria”, sia per conto proprio che per conto terzi, oltre agli strumenti che si stanno aggiungendo sopra Git per poter testare e fare continuous deployment automatico del codice dalla parte di sviluppo a quella di produzione, c’è infatti sempre più emergente una nuova forma dell’antica disciplina della documentazione e nel modo con il quale si scrive codice. Forse più pigro ma di sicuro decisamente più efficiente quando poi bisogna tirare le fila di un progetto o riprenderne pezzi che non vengono più toccati anche da molti anni (ma in realtà bastano pochi mesi o settimane per dimenticarsi completamente come funziona il codice che si è scritto con passione e fin troppa intelligenza in precedenza).
Ricordiamo in chiusura che GitHub è basato su Git, il software open source per l’immagazzinamento la gestione delle versioni del codice sorgete ideato da Linus Torvalds per gestire la crescente complessità del kernel di Linux. L’intelligenza e la facilità (relativa) di uso di Git nei suoi impieghi più facili, ma anche l’estensibilità, la potenza e la flessibilità lo hanno reso lo standard di fatto per il versionamento del codice, superando strumenti molto antichi e ben fatti come svn che però mancavano dell’aspetto chiave della collaborazione in team anche molto grandi di collaboratori.
Microsoft, che per decenni ha avuto problemi di gestione della sua base di codice dei prodotti più “importanti”, sta sposando Git come strumento chiave per il lavoro di sviluppo del codice.