Linguaggi di programmazione, quale scegliere?

Ogni linguaggio di programmazione ha delle peculiarità, delle caratteristiche che lo rendono specifico per un determinato contesto/applicazione. Non esiste quindi il migliore o il peggiore ma solo quello più adatto a raggiungere un determinato scopo con minor fatica. Lato server, lato client, stand alone, ad oggetti o procedurale, a riga di comando o con GUI. Ma quale imparare per ambire ad un posto di lavoro o formarsi a scuola?

A scuola

E’ chiaro che nelle scuole superiori come primo linguaggio viene insegnato il C++, linguaggio storico, tra i primi ad alti livello ad avere fortuna, ma tutt’altro che vetusto o da mandare in pensione per prestazioni e robustezza. Imparare il C, che sposta la sua attenzione al basso livello, è sicuramente formativo, spesso nelle università, anche se ha tutte le strutture sintattiche e dati che ovviamente troviamo negli altri linguaggi, spesso potenziate e semplificate.

Per lavoro

Ma in tutti gli altri contesti quali tra questi linguaggi sono davvero utili da imparare e conoscere? Diciamo subito che non esiste un modo univoco per stabilire chi o cosa sia meglio. Ma certamente se diamo un’occhiata alle classifiche ci possiamo fare una idea di quali 4/5 linguaggi sono magari utili da spendere sul mercato del lavoro. Analizziamo RedMonk che fa una sorta di monitoraggio di flussi di attività dei vari linguaggi sulla nota piattaforma GitHub.

da RedMonk

Javascript

JavaScript fa da padrone: sicuramente il fatto di essere versatile non solo lato client ma adesso anche lato server lo rende una scelta molto interessante. Versatile ma anche sostanzialmente semplice da imparare ed utilizzare con una ormai enorme comunità di sviluppatori e materiale disponibile. Tutti i recenti framework come React e Node.JS stanno di fatto spopolando. Pensiamo come JS sia molto valido anche con altre librerie come ElectronJS.

Python

Ma qualsiasi classifica guardiamo, è il Python ad essere il vero elemento sorpresa. In ascesa incontrastata dal 2018. Vale la pena impararlo data la sua semplicità e trasversalità sia per il web che per applicazioni stand-alone e/o con GUI? Forse no ma la sua vera peculiarità è tutto l’ambito machine learning, manipolazione big data, IA settori che sono in forte espansione, magari meno in Italia, ma decisamente da monitorare. 

Java

Java tiene sicuramente per le applicazioni web enterprise, tutto il mondo delle API e la diffusione del framework Spring. Lo sviluppo di app tiene ancora il passo visto che il suo fratellino Kotlin non ha mai fatto breccia tra gli sviluppatori. Ultimo utilizzo meno diffuso forse ma pur sempre valido anche per applicazioni stand-alone con GUI.

Go (GoLang)

Una considerazione del tutto personale, solo in parte giustificata dalle classifiche di questo articolo. Go viene spesso indicato come il C++ e Java killer. E’ noto per la sua semplicità, facilità di apprendimento e chiarezza sintattica. È progettato per essere più fruibile dai principianti e offre strumenti potenti soprattutto per la concorrenza e la gestione dei thread. Questo potrebbe renderlo un’ottima scelta per uno studente che si avvicina alla programmazione per la prima volta, poiché la sua sintassi è meno complessa rispetto a linguaggi come C++.

D’altra parte, C++ è un linguaggio più ampio e complesso, utilizzato in molti settori, incluso software applicativo in generale, i videogiochi, le applicazioni ad alte prestazioni e molto altro. È potente e offre un controllo molto dettagliato sulla gestione della memoria e delle risorse del sistema, ma questa complessità potrebbe risultare inizialmente intimidatoria per uno studente alle prime armi. Tutte motivazioni che nel recente periodo mi stanno motivando a sperimentare il Go come linguaggio didattico a scuola.

Per lavoro

Qui una classifica basata sulla ricerca di personale specializzato in un linguaggio piuttosto che un altro. Ovviamente è globale. Bisognerebbe contestualizzarla sul territorio italiano piuttosto che nell’immediato locale. (Fonte Indeed.com). Qui rimangono più o meno gli stessi linguaggi ma a posizioni invertite. Java conferma la supremazia come linguaggio da “combattimento” anche per la sua presenza ormai radicata da anni su sistemi legacy. I linguaggi più interessanti si confermano GO e Rust che si affacciano con prepotenza sul mondo lavorativo.

Analoghe considerazioni per controprova le troviamo su da https://www.devjobsscanner.com/

Trend generici

Tra le scelte invece non prettamente lavorative, ma più in generale, se volessimo avere una idea della classifica dei linguaggi più usati/apprezzati per svariati utilizzi personali o lavorativi, ricerca ecc, la classifica si stravolge. Qui troviamo di tutto. Nel web infatti c’è un sommerso di sviluppi che vengono fatti sia per lavoro, ma anche per passione, per ricerca scientifica, per progetti open source, tutti elementi che non possiamo annoverare esplicitamente tra scuola e lavoro.

Python quindi sembra essere un candidato molto appetibile tra i linguaggi da imparare per semplicità e profittabilità. Ovviamente qualsiasi linguaggio che andiamo a imparare non può e non deve essere l’unico. Immaginate una qualsiasi applicazione moderna, qualsiasi gestionale che senso avrebbe se non fosse accompagnato da un database ed un esperto di SQL? Un linguaggio di frontend cosa potrebbe senza backend?

Conclusioni

Probabilmente la scelta del linguaggio non andrebbe fatta per popolarità e moda ma per scopo e finalità. Se è vero che molti linguaggi sono trasversali per loro natura, è anche vero che il mercato si orienta ad un linguaggio piuttosto che un altro in base al prodotto da realizzare, le performance o la facilità di strumenti a corredo la quantità di codice e librerie che la comunità di sviluppatori ha realizzato e reso pubblica.

I diversi linguaggi di programmazione sono ottimizzati per scopi specifici. Alcuni sono ideali per lo sviluppo web, altri per applicazioni scientifiche o per l’elaborazione di dati. La scelta di un linguaggio dovrebbe essere guidata dalla capacità del linguaggio di adattarsi meglio alle esigenze del progetto che possiamo conoscere però solo una volta che sul quel progetto ci siamo!

Se sei uno studente o sei in cerca di lavoro come programmatore ti tocca partire da uno dei linguaggi maggiormente diffusi, farti le ossa, analizzare tutti gli aspetti. Puoi provare a fare una ricerca delle aziende della tua zona e di cosa si occupano se a breve hai intenzioni di candidarti da loro.

Una considerazione che faccio sempre con i miei alunni è: “facciamoci le ossa col C++ (o col GO perché no), tutti gli altri linguaggi con un buon manuale e una settimana di esempi notte e giorno li potete imparare”. Solo sul campo, nell’azienda e nel contesto applicativo poi potremo solo sviluppare quella esperienza e abilità sperata.

Ultima modifica 17 Novembre 2023