Microsoft C#
Linguaggi Programmazione
C#: Perché questo linguaggio di programmazione è ancora così popolare e come si sta evolvendo.
Il punto di Mad Torgersen, program manager Microsoft e lead designer per C#
———
In questo articolo ripreso da una intervista di Mad Torgersen a TechRepubblic, approfondiremo la conoscenza su C#, un linguaggio largamente diffuso tra gli sviluppatori e adottato anche da noi in ESSE I SOLUTIONS per realizzare la maggior parte dei nostri progetti IT.
———
Nato nel 2000, dopo due deceni C# continua ad essere uno dei linguaggi di programmazione più popolari e ampiamente utilizzati al mondo. Apprezzato da milioni di persone per la sua versatilità e la sintassi di facile lettura, è diventato rapidamente un punto di riferimento per la realizzazione di app web e mobile, per lo sviluppo di giochi, per le applicazioni aziendali e altro ancora. E sebbene condivida una stretta eredità con Java, C# si è evoluto in gran parte lungo il proprio percorso, anche grazie all’ampio supporto di Microsoft.
Gran parte della popolarità di C# risiede nella sua tendenza ad abbracciare rapidamente nuove funzionalità. È quello che sostiene Mad Torgersen, program manager Microsoft e lead designer per C#, il quale afferma che è proprio grazie al design lungimirante che c# è riuscito ad accumulare una ampia base di utenti utilizzatori nel corso degli ultimi 20 anni.
Nella sua intervista rilasciata a TechRepubblic Torgersen afferma:
“Puntare fortemente all'innovazione è sempre stata una delle cose che contraddistingue C#. Penso che ci sia un equilibrio abbastanza pragmatico in cui le cose che facciamo si concentrano sugli scenari in cui i veri programmatori si trovano. Siamo molto attenti all'innovazione guidata dall'utilità (non tanto dalla bellezza), e allo stesso tempo cerchiamo davvero di mantenere il linguaggio coerente”.
Torgersen è stato il principale orchestratore del design di C# negli ultimi 15 anni e ha trascorso quattro anni come professore associato presso l'Università di Aarhus in Danimarca prima di lasciare il mondo accademico per l'industria nel 2005. Ora guida un team in Microsoft il cui ruolo è quello di coordinare la direzione futura di C#
A differenza di Torgersen, la maggior parte di coloro che fanno parte del team di progettazione C# sono coinvolti nella creazione e nell'implementazione del linguaggio di programmazione e tendono a lavorare in campi adiacenti in Microsoft. Nel frattempo, è compito di Torgersen eseguire effettivamente il processo di progettazione del linguaggio C# e mantenere le specifiche del linguaggio.
"Ci riuniamo abbastanza spesso, circa due volte a settimana per due ore, per prendere le decisioni e guidare il lavoro creativo su come dovremmo fare le cose nella prossima versione di C#. Sono una specie di orchestratore e una delle persone che fa gran parte del lavoro di base per portare idee e elaborare dettagli per questo progetto".
Un milione di voci diverse
Sebbene abbia sempre avuto il suo centro di gravità in Microsoft, C# è un linguaggio di programmazione open source e come tale segue un processo di progettazione open source. Sebbene ciò sia principalmente guidato da Microsoft, le idee arrivano regolarmente dalla comunità di utilizzatori di C#.
"Abbiamo un sito GitHub dedicato alla progettazione di C# e un altro dedicato all'implementazione", afferma Torgersen. "Sul sito di progettazione abbiamo molte interazioni con persone che non sono coinvolte quotidianamente con C#, ma che spesso sono utenti i quali contribuiscono alla discussione attraverso le loro idee. Alcune delle funzionalità che entrano in C# derivano proprio da questo canale.”
Ma con le molteplici idee che arrivano da diverse parti, come fa Torgersen e il suo team a filtrare ciò che è davvero importante?
"Questa è una sfida. Perché è un grande linguaggio di programmazione in termini di utilizzo, ci sono milioni di sviluppatori C# e quindi molteplici input".
Ed è qui che torna utile la buona democrazia vecchio stile. Per aiutare il processo Torgersen e i suoi colleghi progettisti C# hanno adottato un meccanismo in base al quale ogni membro del team valuta le idee che arrivano da GitHub e sostiene quelle che ritiene opportuno portare sul tavolo. Le decisioni non si basano solo sulla quantità di interesse che ogni idea riceve, ma se essa si adatta al percorso evolutivo pianificato per il linguaggio oltre che alla diffusione di idee simili in altre lingue, spiega Torgersen.
"È un approccio molto orientato al dibattito", afferma.
"Avere un team di progettazione è davvero la chiave per gestire il processo e prendere le decisioni giuste. Abbiamo la necessità di avere molte prospettive, ma anche un processo per governare gli input, per non disperderci in troppe direzioni”.
“Giriamo intorno alle cose molte volte, ma abbiamo anche un modo per raggiungere un accordo e dire:" OK, questo è quello che stiamo facendo. È un equilibrio tra avere un sacco di input e fare molte cose avendo una gestione di come tutto si riunisce, in modo che ciò che viene fuori sia stato progettato in maniera olistica”.
Stabilire le milestones
Sebbene C# potrebbe non occupare il primo posto in termini di popolarità (questo onore va a C o JavaScript, a seconda dell'indice che si guarda), è accreditato per aver introdotto modifiche tecniche significative al panorama degli sviluppatori con il passaggio alla programmazione asincrona nella metà degli anni 2000, che è stata in gran parte guidata dalle modifiche al design di base apportate da Torgersen e dal suo team di Microsoft.
Avere il supporto del linguaggio di programmazione per la programmazione asincrona è improvvisamente passato dall'essere un desiderio marginale ad essere un aspetto chiave per molti sviluppatori, stabilire un nuovo standard per l'industria e far sì che molti altri importanti linguaggi di programmazione - tra cui Javascript - successivamente riprendano il modello.
"Questo è stato un grande punto di svolta, perché ci ha aiutato ad affrontare uno dei grandi cambiamenti nel panorama degli sviluppatori, che è stato il turno del cloud e dei dispositivi mobili".
"All'improvviso c'era molto più bisogno di programmi per comunicare tra dispositivi diversi, sia che dipendesse da un server nel cloud o tra dispositivi mobili e server. E così via. Abbiamo risolto il problema con molto successo e da allora il settore ha ripreso il nostro approccio. È qualcosa di cui sono molto orgoglioso”.
Ovviamente sono successe molte cose nei 15 anni da quando Torgersen ha assunto il timone di C# dal creatore, Anders Hejlsberg. Più recentemente, l'ascesa di piattaforme senza codice e a basso uso di codice, in particolare durante la pandemia COVID-19, ha iniziato a livellare il campo di gioco consentendo alle persone con poca o nessuna capacità di codifica di creare app funzionali.
Data l'attuale carenza globale di sviluppatori queste piattaforme sono abbastanza semplici da consentire anche ai non programmatori di sviluppare applicazioni per flussi di lavoro aziendali, completamente funzionali e che possono essere integrate nella più ampia infrastruttura IT dell’azienda.
"Conosco molti programmatori che vedono questo fatto con un po 'di disprezzo, ma allo stesso tempo apprezzo davvero che porti più persone a essere creative con i computer", dice Torgersen.
"La rende meno esoterica o segreta o simile a una cabala, l'intera faccenda del codice diventa meno misteriosa e più accessibile."
Torgersen è anche ottimista sul fatto che le piattaforme low-code, no-code e la programmazione tradizionale possano coesistere pacificamente, anche se riconosce che c'è in atto una sfida.
"Questa è sempre stata la sfida degli approcci con poco-codice (low-code), anche prima che li chiamassimo così. Vale a dire che le configurazioni low-code o senza-codice introducono solo intrinsecamente, almeno con le tecnologie che abbiamo oggi, alcune limitazioni su cosa si possa fare ", dice.
"Questo è sempre stato un terreno difficile in passato, al punto che penso abbia contribuito al fallimento di alcuni approcci senza codice che non avevano una storia di crescita per quando le cose dovevano diventare un po 'più intelligenti. Questa è una sfida che dobbiamo continuare ad affrontare ".
C# 9.0 e oltre
Come tutti i linguaggi di programmazione moderni, C # continua ad evolversi. Con C # 9.0 in arrivo a novembre, il prossimo aggiornamento si concentrerà sul supporto della rappresentazione "concisa e immutabile" delle forme dei dati.
"C# 9.0 sta tentando di eseguire alcuni passaggi successivi per semplificare la gestione dei dati che arrivano in rete e per esprimere la giusta semantica per i dati, che deriva da quello che originariamente chiamiamo un paradigma orientato agli oggetti (object-oriented paradygm)”.
C# 9.0 fa il passo successivo in quella direzione con una funzione chiamata Records, spiega Torgersen. Si tratta di un tipo di riferimento che permette ad un intero oggetto di essere immutabile e di farlo agire come una value.
"Da molto tempo ci siamo ritrovati a prendere in prestito idee dalla programmazione funzionale per integrare la programmazione orientata agli oggetti in un modo che aiuta davvero, ad esempio nella programmazione orientata al cloud e nella manipolazione dei dati", spiega Torgersen.
"I record sono una caratteristica chiave di C# 9.0 che ci aiuterà."
Oltre C# 9.0 invece le cose diventano però più teoriche. Torgersen insiste sul fatto che non c'è un'endgame' concreto per il linguaggio di programmazione - o almeno, non finché non raggiungerà una data di scadenza, ancora sconosciuta.
"Che succederà un giorno!" aggiunge. "Penso che alcune cose interessanti, che è il momento di guardare di nuovo, hanno a che fare con la composizione del software - rendendo più facile combinare diversi pezzi di software”.
"C'è un grado di adattamento in cui la maggior parte dei linguaggi di programmazione vanno bene, ma non abbastanza, e voglio avere caratteristiche più potenti per l'adattamento in modo che sia possibile mettere meglio in gioco i componenti software esistenti."
Possiamo aspettarci questo in C# 10?
"È una sorta di progetto a lungo termine a cui stiamo lavorando, anche se stiamo facendo più funzionalità utili a breve termine", dice Torgersen.
"Questo sarebbe stato universale. Questo aiuterebbe chiunque si occupi di sviluppo software, ma in particolare quando si stanno riunendo diverse strutture insieme cercando di farle cooperare."
Fonte: https://www.techrepublic.com/google-amp/article/c-designer-torgersen-why-the-programming-language-is-still-so-popular-and-where-its-going-next