Det pønser C#’s danske chef på i version ni: Ind med records og ud med static void Main()
Der er meget fokus på dataklasser i sprog som Java og C# for tiden, og mon ikke noget af den aktivitet skyldes et større fokus på at opnå kompakte objekter, hvis graf – de enkelte dele af objektet – ikke er spredt ud over hele hukommelsen.
I løbet af de sidste tyve år har cpu’en sprintet væk fra hukommelsen, når det angår hastighed, så nu er det ikke længere helt så underordnet, hvordan datastrukturer repræsenteres i hukommelsen.
Java har netop fået ‘records’, poster, som det kendes fra Pascal og som structs i C, og nu er samme facilitet på vej i C#, hvis man skal tro sprogets danske bagmand, Mads Thorgersen, der i et nyt, langt blogindlæg løfter sløret for de kommende faciliteter i C# 9.
Mads Torgersen har overtaget tøjlerne fra C#-opfinder Anders Hejlsberg og han har en fortid som lektor og ph.d i datalogi fra Aarhus Universitet, så sproget bliver på danske hænder.
Structs og værdi-typer findes nu i forvejen i C#. Så hvori består det nye?
»Hvis du ønsker, at hele objektet skal være uforanderligt og opføre sig som en værdi, skal du overveje at erklære det som en record,« skriver Mads Thorgersen og illustrerer med dette eksempel:

https://devblogs.microsoft.com/dotnet/c-9-0-on-the-record/ nu er det også sket præcis efter planen.
Hvorfor skulle de dog pludselig begynde på det? https://github.com/dotnet/csharplang/milestones
https://channel9.msdn.com/Events/Build/2020/BOD108 - hvis du spooler frem til 14:30 her starter Mads med selv at fortælle om C# 9.0 efter de første 14 minutter er gået med C# 8.0 og hører du bare det første minut fra 14:30 hører du Mads selvfortælle at planen er at shippe sammen med .Net 5, mens det også står ret tydeligt i hans præsentation.
Læser du kommentarerne i det blogindlæg du selv hanviser til så svarer han selv "Yes" til "Is C#9 tied to .NET 5?"
Hvis C#-holdet var stensikker på en november-deadline, havde de nok skrevet det på projektsiden. Men det er bare min antagelse.
Tania/V2
Prøv at læs en gang mere - .Net 5 er allerede nu ude i preview 4 som der står og linkes til i blogindlæget.
Udgivelsen af .Net 5 var sat til September 2020, men er nu rykket til November 2020. I slut 2021 er .Net 6 sat til at udkomme og C# 9 skulle gerne være kommet lang tid før det.https://github.com/dotnet/core/blob/master/roadmap.md
.Net Framework har intet med deres nuværende udvikling af .Net Core at gøre. Det er en meget vildlende sammenligning. Hvis man vil sammenligne skal man se på .Net core 3.0 og 3,1 fra 2019.
Og ja vi får se :-) fx her: https://dotnet.microsoft.com/download/dotnet/5.0
Det er nok ikke den bedste sammenligning, eftersom .Net 4 er 10 år gammel. Hyppigheden af releases er øget væsentligt siden dengang.
Der er tale om en dato for et preview i den pågældende blog. Til sammenligning gik der 8,5 måned fra beta til færdig udgave i .Net 4. Men vi får se.
Mvh Tania/v2
Slutningen af 2021 er nok nærmere November 2020. C# 9 er sat til at komme sammen med .Net 5
Det skrev Scott Hunter om dagen førhttps://devblogs.microsoft.com/dotnet/announcing-net-5-preview-4-and-our-journey-to-one-net/
Det er åbenhart for meget at skulle taste. Jeg undre mig over om det vil være muligt at sprede main coden ud imellem functionerne, istedet for som nu hvor det skal være samlet i en blok.
For mig virker en ændring som sparer en eller to linjer kode som totalt formålsløst, programmer har normalt tusinder af linjer kode.
Når nu de er i gang med at ændre det hele hvorfor så ikke implementer main functionen efter C og C++.
Eksempel;