Roslyn – Ny kompilator

C# kompilatoren slik vi kjenner den har levd med oss siden Visual Studio .NET i 2002. I løpet av de siste 12 årene har den blitt vedlikeholdt av både C# og VB.NET kompilatorteamene hos Microsoft. Etter at kompilatorteamene hadde lagt til «async» og «await» kom det for en dag at kodebasen gjorde det umulig å legge til flere store endringer i språket. Dette betyr ikke at C# er et dødt språk, i .NET 4.5.2 som er på trappene i disse dager kommer det ny funksjonalitet, men da begrenset til mindre endringer rundt ASP.NET og svaksyntstøtte i Windows Forms.

For å bringe .NET rammeverket videre med store endringer er det derfor nødvendig å ta en fot i bakken og se hvor vi vil. Microsoft har i denne prosessen bestemt seg for å lytte til programmere over hele verden og lager nå en ny kompilator med åpen kildekode. Åpen kildekode betyr at de oppmuntrer alle til å være med å diskutere seg frem til gode design, så vel som å finne feil i utviklingsløpet. Et godt eksempel på hvordan alle kan være med å forme .NET og kompilatoren kan leses her https://roslyn.codeplex.com/discussions/543883

Den nye kompilatoren utvikles under kodenavnet «Roslyn», det utrolige er at den skrives i C#, med unntak av VB.NET spesifikke egenskaper som skrives i VB.NET. Det er rett og slett fascinerende at C# er et så kraftig språk at den kan skrive sin egen kompilator. Ikke minst er dette gunstig med tanke på feilsøking, da vi utviklere lettere kan forstå hva som skjer med koden vår.
Javel tenker du kanskje nå, hva gir dette oss? Sånn bortsett fra å legge godt til rette for fremtiden så er det lite nytt. Kompilatoren får et rikt API som kan benyttes til å lage funksjonalitet vi kjenner fra ReSharper, altså mer effektiv utvikling. Kompilatoren vil ikke bli raskere enn den gamle, men den får støtte for å kjøre på flere kjerner, noe som kan gi en raskere kompilering. Målet med Roslyn er ikke å gi ny funksjonalitet, men å tilrettelegge for ny funksjonalitet.

Roslyn er allerede støttet i Visual Studio, og ved utvikling av for eksempel et rammeverk er det mulig å bruke kompilatoren til å analysere bruken av rammeverket. Det blir mulig å veilede utvikleren live i hvordan rammeverket best mulig bør benyttes. Vi forsøkte dette, og konkluderte med at vi må ha kraftigere PC’er før vi kan kjøre Visual Studio i debug modus.
En større interessent i ny kompilator er Xamarin, de er ledende innen native apps til iOS, Android og Windows fra C#. De har derfor fulgt Roslyn tett og vil trolig komme med en helt rå oppdatering så fort Roslyn går live.

Mange Linux brukere har fattet interesse for .NET plattformen, og Mono har blitt et kjærkomment verktøy. Dessverre har ikke Mono alltid vært helt oppdatert og bugfritt, noe som har gjort at ikke så mange tør kjøre .NET på annet enn Windows. Roslyn er under Apache 2.0 lisensen og Microsoft jobber sammen med Mono og lover å jobbe videre med dem for å kunne kjøre all .NET kode på alle plattformer. Dette gjør at Plex mediesenter teoretisk sett kan få Netflix støtte på linux og Arm enheter.

Oppsummert er Roslyn et prosjekt vi følger med på, og gleder oss til å ta i bruk, det blir nok fint å være C# utvikler i fremtiden.

.NET utvikler med 5 års erfaring i Visual Studio
Kontakt Bjarne: