För ett decennium sedan deklarerade Microsoft att de älskade öppen källkod. 2014 gick Redmond-jätten ännu längre. Microsofts vd Satya Nadella sa: “Microsoft älskar Linux.” Få i Linux- och öppen källkodskretsar trodde på dem. Åren gick och när Microsoft omfamnade projekt med öppen källkod, öppnade upp sina patent för Linux-utvecklare och släppte Windows Subsystem för Linux, köpte vissa till slut att Microsoft inte längre var fienden med öppen källkod. Som Linux-grundaren Linus Torvalds sa: “Jag avfärdade helt alla anti-Microsoft-grejer.” Många utvecklare med öppen källkod köpte dock aldrig detta. De tänker fortfarande på Microsoft som det onda imperiet. Och, pojke, fick de detta förstärkt när Microsoft tog bort den kommande .NET 6:s Hot Reload-funktion från dess open-source-utgåvor.
Hoppsan!
Hot Reload gör det möjligt för utvecklare att ändra ditt programs hanterade källkod medan det körs. Det finns ingen anledning att manuellt pausa programmet eller lägga det i en brytpunkt. Du kan göra ändringar i farten och se vad som händer härnäst. Med detta kan du spara många app-omstarter mellan redigeringar för att göra dig mer produktiv genom att minska tiden du slösar på att vänta på att appar ska byggas om, starta om, navigera om till den tidigare platsen där du var i själva appen, och så vidare. Detta är en stor vinst för många programmerare.
Detta var redan en populär funktion på andra språk som Dart, Nextjs och React. .NET-utvecklargemenskapen såg fram emot att använda den i sina .NET-implementationer med öppen källkod.
Men sedan, Dmitry Lyalin, en Microsoft-programledare som arbetar med Hot Reload, sa att den bara skulle vara tillgänglig inom en snar framtid för Windows- och Visual Studio 2022-utvecklare istället för att vara öppen för alla som Xamarin.Forms; F#; och .NET Native-utvecklare. I synnerhet skulle det inte vara tillgängligt för .NET Core-kommandoradsgränssnitt “dotnet watch”-användare. För dem skulle det inte finnas någon Hot Reload.
Varför? Lyalin twittrade en förklaring, “För att förtydliga, med tanke på antalet scenarier vi arbetar med, var vi tvungna att prioritera :(. Som ett resultat kommer Hot Reload inte att släppas som en funktion i dotnet watch-verktyget. Vi dubblar ner på VS 2022 med stöd för VS4Mac kommer senare.”
Utvecklargemenskapen för .NET Core var inte road. Core, efterföljaren till .NET Framework, är den fria och öppen källkod, hanterad programvara. Det är tillgängligt för Windows-, Linux- och macOS-användare. De hade använt Hot Reload i betan, och sedan hade den tagits bort.
Som Phillip Carter, en före detta programchef för Microsoft F# skrev på Microsofts bloggsajt, “Det är en besvikelse att se att dotnet Watch har det befintliga stödet som den har haft under en lång tid nu försvinner. Det fungerade mycket bra… Detta är en tydlig backslide, särskilt för att hot reload inte började som bara för Visual Studio. Jag hoppas verkligen att detta inte är början på ett mönster. Andra var överens: “Detta är ett enormt steg bakåt för .NET som ett legitimt plattformsoberoende ekosystem .”
Utanför Microsoft var andra programmerare mer uppriktiga. På Ycomb skrev Reilly Wood: “Detta är ett fruktansvärt kortsiktigt beslut som gör mig rädd för framtiden för .NET. Jag har en enorm respekt för .NET-teamet, och jag är mycket säker på att de inte är de som ligger bakom detta.”
På Reddit var de mindre förstående. “Microsoft tog bort en funktion som tidigare var tillgänglig på .NET 6 förhandsvisning (tillgänglig på Linux) och låste den bakom Visual Studio 2022 som bara körs på Windows. Detta påverkar de Linux-användare som kodar på .NET. Fler och fler .NET glider tillbaka till en plattform som inte är plattformsoberoende eller en del av öppen källkod.”
Men innan du får ut facklor och höggafflar, under helgen insåg Microsoft att de sprängde sin streetcred med öppen källkod. Scott Hunter, Microsofts .NET Program Management-chef, backade offentligt och skrev: “Först och främst vill vi be om ursäkt. Vi gjorde ett misstag när vi verkställde vårt beslut och tog längre tid än väntat att svara tillbaka till communityn. Vi har godkänt dragningen. begär att återaktivera denna kodsökväg och den kommer att finnas i GA-versionen av .NET 6 SDK.
Så kom i början av november, när .NET 6 släpps officiellt, alla .NET-utvecklare, inklusive de på Linux och använder plattformar med öppen källkod, och inte bara Visual Studio 2022-programmerare, kommer att kunna använda Hot Reload.
Kommer de få tillbaka den goda vilja de förlorat? Jag förväntar mig det. Men för dem som fortfarande hatar Microsoft, kommer detta att gå ner som ytterligare ett exempel på hur du verkligen inte kan lita på dem.
Relaterade berättelser:
Microsoft levererar nästan slutgiltig VS 2022 Release Candidate och utser den 8 november till GA-datumMicrosoft tar ett stort steg mot .NET-sammanslutning med .NET 5.0 release.NET-utvecklare avslöjar sina favoritprogrammeringsspråk och vad de vill lära sig nästa
Relaterade ämnen:
Linux Cloud Big Data Analytics Innovation Tech and Work Collaboration