Hejlsberg presenta le novità in C# nella stessa sala dove nel 2005 abbiamo ascoltato Linq e le altre novità di C# 3.0.
Sessione spettacolare e molto bella. Le funzionalità sono diverse, ovviamente rivoluzionarie di Linq che ha segnato una rivoluzione, ma certamente estremamente interessanti e potenti.
Come tutti sanno io non sono un estinamtore dei linguaggi dinamici e anche Hejlsberg spara qualche battuta a tal proposito. È però indubbio che determinate funzionalità dei linguaggi dinamici evitano vere e proprie brutture di codice che alcune volte rendono estremamente difficile la sua redazione e manutenzione. La slides a destra è esplicativa sull'uso pratico di questa nuova feature.
Quante volte abbiamo cercato di eseguire un cast di, per esempio, IEnumerable<string> in IEnumerable<object> non trovando alcun modo 'pulito' per aggirare l'ostacolo. Bene, Hejlsberg parla di varianza e covarianza spiegando come in sostanza la novità consiste nel riuscire a fare ciò per cui avremmo sempre pensato che si dovesse poter fare.
E infine "Compiler as a service" è probabilmente la feature che mi ha attirato di più. La possibilità di compilare codice al volo e con una semplicità estrema. Con le poche righe di esempio mostrate alla fine si potrebbe costruire una versione di PowerShell super potente. Veramente semplice da usare e se penso a quello che ci aspetta domani con i DSL di Oslo, la combinazione delle due cose è realmente fantastica.
Non è ancora chiaro se le funzionalità di "compiler as a service" saranno disponibili da subito con C# 4.0 o aggiunte in un timeframe immediatamente successivo.