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.
![IMG_0575](http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/C4.0.eoltre_1D93/IMG_0575_thumb.jpg)
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.
![IMG_0580](http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/C4.0.eoltre_1D93/IMG_0580_thumb.jpg)
![IMG_0581](http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/C4.0.eoltre_1D93/IMG_0581_thumb.jpg)
![IMG_0582](http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/C4.0.eoltre_1D93/IMG_0582_thumb.jpg)
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.
![IMG_0591](http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/C4.0.eoltre_1D93/IMG_0591_thumb.jpg)
![IMG_0592](http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/C4.0.eoltre_1D93/IMG_0592_thumb.jpg)
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.
![IMG_0593](http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/WindowsLiveWriter/C4.0.eoltre_1D93/IMG_0593_thumb.jpg)
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.