Nel mondo Apple ha una riserva enorme di sviluppatori che utilizzano il Mac per un motivo molto semplice. Non esiste altra piattaforma sulla quale gira Xcode, che a sua volta permette di sviluppare le app per iOS e iPad oltre che per macOS. Milioni di app e decine di milioni di sviluppatori. Ma in realtà il mondo è molto più grande, come dimostra questa survey annuale fatta da StackOverflow, che presenta molti dati interessanti, a partire dal sistema operativo più usato da chi sviluppa.
Il dominio di Linux
Secondo la survey di StackOverflow Windows di Microsoft è il sistema operativo più utilizzato dagli sviluppatori che hanno partecipato al sondaggio.
Oltre il 48% degli sviluppatori dichiara di utilizzare Windows per le proprie attività lavorative (e un più ampio 62% dichiara di utilizzarlo per le proprie esigenze non lavorative/personali/hobbistiche).
Tuttavia, Linux non è poi così lontano nella condivisione del lavoro, con il 40% degli sviluppatori che dichiara di utilizzare Linux nella vita lavorativa (il 40% dichiara di utilizzare Linux anche per uso personale).
MacOS è al terzo posto con una quota del 33% per l’uso lavorativo (e del 31% per quello personale). Nel frattempo, Linux (in modo indiretto) occupa anche il quarto posto, con il 14% che dichiara di utilizzare il sottosistema Windows di Microsoft per Linux nell’ambito del proprio lavoro.
Il fatto che Windows regni sovrano per l’uso personale non sorprende nessuno, ma per lo sviluppo Linux è diventato la soluzione ideale. Il dato è significativo per le esigenze lavorative del maggior numero di intervistati, se si combinano quelli che usano Linux in modo nativo e quelli che lo usano all’interno di Windows.
Il cloud made in Amazon
Ma il sistema operativo è solo metà della storia. Gli sviluppatori sempre più spesso lavorano puntando verso un ambiente completamente diverso: il cloud, dove verranno eseguiti i programmi. Che si tratti di ambienti virtuali o di container, Linux domina in quel settore a prescindere dal fornitore.
In ogni caso AWS rimane la piattaforma cloud più utilizzata da tutti gli intervistati e dagli sviluppatori professionisti. Azure ha preso il secondo posto di Google Cloud. Le persone che imparano a scrivere codice hanno un utilizzo molto diverso delle piattaforme cloud. Heroku è la piattaforma più utilizzata da chi sta imparando a programmare (35%), un dato significativamente superiore a quello degli sviluppatori professionisti (18%).
Vediamo differenze simili con Google Cloud (31% di apprendimento del codice; 26% di sviluppatori professionisti), Firebase (30% di apprendimento del codice; 21% di sviluppatori professionisti), VMware (12% di apprendimento del codice; 8% di sviluppatori professionisti). Si può notare anche la penetrazione di AWS e Azure nelle organizzazioni: un numero significativamente maggiore di sviluppatori professionisti utilizza queste piattaforme rispetto alle persone che stanno imparando a scrivere codice.
Linguaggio per programmare
Poche novità qui. Il 2022 segna il decimo anno consecutivo in cui JavaScript è il linguaggio di programmazione più usato. Ma il quadro è diverso per chi sta imparando a programmare. HTML/CSS, Javascript e Python sono quasi a pari merito tra i linguaggi più utilizzati da chi sta imparando a programmare. Le persone che imparano a programmare sono più propense degli sviluppatori professionisti a dichiarare di utilizzare Python (58% contro 44%), C++ (35% contro 20%) e C (32% contro 17%).
Rispetto agli sviluppatori professionisti, coloro che imparano a programmare hanno meno probabilità di utilizzare SQL (38% contro 53%), TypeScript (15% contro 40%) e Bash/Shell (19% contro 29%).
Questo spiega anche quali sono i framework software più usati. Node.js e React.js sono le due tecnologie web più utilizzate dagli sviluppatori professionisti e da chi sta imparando a programmare. Angular è più utilizzato dagli sviluppatori professionisti che da quelli che imparano a programmare (23% contro 10%), così come ASP.NET (16% contro 10%) e ASP.NET Core (21% contro 10%).
Quest’anno StackOverflow ha aggiunto altre risposte per vedere le librerie più popolari in ambiti diversi. Ad esempio, TensorFlow rimane più popolare di PyTorch per l’apprendimento automatico, ma Scikit-learn si colloca subito dopo TensorFlow. Flutter e React Native sono i due strumenti multipiattaforma più popolari. Le persone che imparano a programmare hanno più probabilità rispetto agli sviluppatori professionisti di utilizzare NumPy (43% contro 24%) e Pandas (35% contro 22%), e questo ha senso dato che sono entrambi basati su Python e le persone che imparano a programmare utilizzano molto Python. È anche più probabile che utilizzino TensorFlow (18% contro 11%) e Scikit-learn (17% contro 11%).
Ide o TextEditor?
Diciamocelo: la grande guerra di religione tra programmatori che vedeva contrapposti Emacs (creato da Richard Stallman) e VI/Vim/NeoVim (il frutto di Bill Joy, Bram Moolenaar e Thiago de Arruda) è finita e hanno vinto questi ultimi. Invece, per le IDE (gli ambienti integrato di sviluppo) e i TextEditor il discorso è ancora molto aperto. Per fortuna.
Visual Studio Code (realizzato da Microsoft ma disponibile su tutte le piattaforme) rimane l’IDE preferito da tutti gli sviluppatori. PyCharm è utilizzato maggiormente da chi sta imparando a scrivere codice (26% contro 16%), mentre Vim è utilizzato maggiormente dagli sviluppatori professionisti (24% contro 16%).
La frontiera: altri strumenti
StackOverflow interroga i suoi utenti anche per capire quali altri strumenti vengano usati in maniera determinate. L’anno scorso è emerso che Git è uno strumento fondamentale per gli sviluppatori. Quest’anno sembra che anche Docker stia diventando uno strumento fondamentale per gli sviluppatori professionisti, passando dal 55% al 69%. Le persone che imparano a programmare sono più propense a utilizzare strumenti 3D rispetto agli sviluppatori professionisti, come Unity 3D (23% contro 8%) e Unreal Engine (9% contro 3%) ad esempio, imparando le competenze per la VR e l’AR 3D. Indice dell’attesa di un cambiamento che forse sta arrivando molto velocemente.
Collaborazione
Infine, come comunicano tra loro i programmatori? Ci sono due tipi di strumenti: sincroni e asincroni.
I tre strumenti sincroni più popolari sono universali per tutti gli intervistati, per gli sviluppatori professionisti e per chi sta imparando a programmare: Zoom, Microsoft Teams e Slack. Per gli Sviluppatori professionisti la percentuale di persone che utilizzano ciascuno di questi strumenti è molto vicina: tra il 54% e il 58% degli intervistati. Tuttavia, per le persone che imparano a scrivere codice, Zoom è utilizzato in misura significativamente maggiore (67%) rispetto a Microsoft Teams (48%) e Slack (30%).
Invece, si notano differenze evidenti tra gli sviluppatori professionisti e le persone che imparano a scrivere codice quando si tratta di strumenti di lavoro asincroni. Jira è il più utilizzato dagli sviluppatori professionisti (49%), ma solo dal 15% di chi sta imparando a programmare. Lo stesso vale per Confluence, il secondo strumento più utilizzato dagli sviluppatori professionisti (43%), ma solo dall’8% di chi sta imparando a programmare. Per le persone che iniziano la loro carriera, pochi avranno esperienza con questi strumenti, aumentando potenzialmente il tempo necessario per imparare a usarli. D’altro canto, le persone che stanno imparando a scrivere codice utilizzano Notion (36% contro 19%) e Trello (43% contro 32%) come strumenti di lavoro asincrono.