Microsoft open sourcer endnu mere .NET

Illustration:
.NET er ved at starte et nyt liv op som open source på GitHub. Udviklerne hos danske Miracle er overvejende positive over Microsofts åbning af kildekoden.

Som det vil være nogle Version2-læsere bekendt, er Microsoft ved at open source virksomhedens .NET-programmeringmiljø i form af .NET Core. En cross-platform gren af .NET Frameworket.

Senest er også eksekveringsmotoren CoreCLR røget på GitHUB, hvor andre .NET Core-dele også ligger. CoreCLR tager sig blandt andet af garbage collection og kompilering til maskinkode.

Programchef Immo Landwerth hos Microsoft kalder i et omfangsrigt blogindlæg fra starten af december .NET Core for 'grundlaget for alle fremtidige .NET-platforme'.

Siden blogindlægget har det britiske teknologimedie The Register beskæftiget sig med Microsofts Open Source-tiltag ad flere omgange. Mediet fortæller, at .NET Core er en modulær gren af det eksisterende .NET-framework. En af idéerne med open source og .NET Core er, at det modsat .NET Frameworket kan køre på forskellige platforme, herunder Mac og Linux.

Måske vil nogen heromkring stoppe op og tænke, at der jo allerede findes en open source-implementering af .NET, der kan køre på forskellige platforme - nemlig Mono.

Landwerth peger i blogindlægget på, at Mono og .NET på Windows har haft to seperate kodebaser. Mono har været en genimplementering af .NET, da der ikke har været open source .NET-kode tilgængelig for monoprojektet.

»Den bedste måde at bygge en cross-platform stak på, er at bygge en enkelt stak i samarbejde. Og den bedste måde at gøre netop det på,, er ved at gøre den open source,« skriver Landwerth.

Udover at kunne køre på flere platforme, indeholder .NET Core også det, Microsoft kalder app-local deployment. Det vil sige, at hver enkelt .NET Core-applikation indeholder et individuelt framework, så applikationen kan køre uafhængigt af, hvilket .NET Framework, der måtte være installeret på systemet.

The Register har talt med Director of Program Management ved Microsoft Jay Schmelzer om open source-tiltaget inden for .NET. Og han afviser, at .NET Core skulle gøre det nuværende .NET Framework til Windows-platformen forældet.

»Vi tror fortsat på det fulde framework og de scenarier, det er skabt til at understøtte, og vi vil fortsætte med at innovere på det område.«

Det udsagn stiller skribenten på The Register, Tim Anderson, sig dog noget tvivlende over for. Han henviser dels til tidligere udsagn - eksempelvis fra Landwerths blogindlæg - om, at .NET Core netop skulle være fremtiden.

Og desuden påpeger Tim Anderson, at et diagram fra Microsoft viser, at de platforme, virksomheden bekymrer sig mest om, eksempelvis Store-apps bygger på .NET Core (under Windows), mens der er lagt op til, at .NET Frameworket vil sameksistere for at understøtte Windows Desktop-udvikling og være en alternativ platform for ASP.NET - ASP.NET 5 er både til .NET Core og .NET Frameworket.

Miracle om .NET og open source

Det danske udviklingshus Miracle beskæftiger sig også med .NET. Og her har Simon Møgelvang Bang, der har titel af director for blandt andet udvikling, samlet input fra udviklerne i en mail, han har sendt til Version2.

»Jeg tror ikke det vil få en stor betydning for min hverdag, som .NET-udvikler, men det vil forhåbentlig gøre at man som .NET-udvikler ikke ses som en der tjener ‘the evil corporation’. Dog vil jeg se frem til den dag at jeg kan køre "Det ultimative IDE" (Visual Studio for dem som er i tvivl) på den platform/OS, jeg synes er bedst. Men der er nok et stykke vej endnu...,« står der i mailen.

Et andet udsagn i skrivelsen fra Simon Møgelvang Bang lyder:
»Jeg tror (uanset årsagen), at MS ved at gå mod open source vil betyde, at vi vil se .Net vil blive accepteret som open source sprog, og også, at det vil blive mere udbredt cross platform.«

Udviklerne ved Miracle har også forholdt sig specifikt til den seneste open sourcing af CoreCLR.

»Det giver et indblik i hvilke værktøjer Microsoft benytter internt, samt hvordan deres build pipeline ser ud. Det er altid rart at kunne pege på producenten, når man gerne vil have indført nye værktøjer. Eksempelvis ser det ud til, at de benytter NuGet til at håndtere eksterne afhængigheder. https://github.com/dotnet/coreclr/blob/master/tests/src/NuGet.Config,« står der i mailen fra Simon Møgelvang Bang.

I samme mail, bliver står der også i forhold til open source og CoreCLR:
»Udviklere synes det er sjovt at sende pull requests der fixer typos, så de kan få deres account tilknyttet projektet. Microsofts udviklere tager pænt imod pull requests. Se eksempelvis: https://github.com/dotnet/coreclr/pull/42/files , samt kommentarerne.«

Derudover er der en Miracle-udvikler, der håber på, at Microsoft vil være lydhøre overfor de input, der vil komme som følge af .NET i open source-sammenhæng:

»Open source har dog en stor fordel, som man kan håbe får betydning her. Det giver mulighed for at der opstår aktiv gruppe dedikerede nørder, som selv kan bidrage med fejlrettelser og nye features. I modsætning til closed source hvor de samme dedikerede nørder kan stå på sidelinjen og råbe at det ikke virker og så håbe på en reaktion fra Microsoft.«

.NET-udviklere er på GitHub

Meget tyder på, at Microsoft har tænkt sig at være lydhøre over for input i forhold til .NET Core. I blogindlægget nævner Immo Landwerth i hvert fald input fra community som begrundelse for at lægge .NET Core på GitHub (og eksempelvis ikke Microsofts egen open source-kodetjeneste Codeplex).

»Principielt bryder vi os ikke om, at bede communitiet om at komme derhen, hvor vi er. I stedet vil vi bevæge os hen til, hvor communitiet allerede befinder sig. Baseret på feedback fra mange andre projekter, som vi har modtaget, lader det til, at hovedparten af .NET communitiet befinder sig på GitHub.«

Derudover nævner Immo Landwerth to hovedpunkter, som begrundelse for at open source .NET Core.

  • At lægge fundamentet for en cross-platform udgave af .NET
  • At bygge og udnytte et stærkere øko-system

I forhold et stærkere økosystem, skriver Immo Landwerth, at forfulgt en agil udviklingscyklus for NuGet - et pakkestyringssystem til Microsofts udviklingsplatform, herunder .NET. Og den agile strategi med hyppige og tidlige releases har været en succes, hvor kunderne har kunnet levere feedback.

Og, skriver Landwerth, hvis du tænker over det:
»open source er essentielt den ultimative agile udviklings-stil. Alle ændringer bliver omgående gjort offentlige og (i teorien) brugbare. Mange medlemmer af mit hold er på Twitter og Stack Overflow (onlineforum for udviklere, red.) og er involverede i kundediskussioner. Ved mere end en lejlighed, har jeg ønsket, jeg kunne pege en kunde i retning af et internt dokument, der forklarer, hvordan vores system er implementeret. Eller pege på en commit, der viser, hvordan et problem er blevet løst.«

»For os betyder det at stacken bliver open source også, at vi er i stand til at imødegå vores kunder i realtid. Selvfølgeligt ønsker alle kunder ikke at interagere med os så tæt. Men dem som gør, forbedrer stacken for os alle, fordi de giver os tidlig og stabilt feedback,« skriver Landwerth og fortsætter:

»Jeg tænker på det, som at køre en bil: hyppige småjusteringer af rattet er ofte mere effektivt end få drastiske ændringer - og også mindre risikabelt.«

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Følg forløbet
Kommentarer (4)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
#1 Jacob Nordfalk

Java har altid, også før den blev open source, været cross-platform fordi der var afgørende for Sun. Sun lovede cross-platform og holdt løftet ved at lægge et stort engagement i at Java-programmer kunne køre på alle platforme...

Microsoft har ikke lovet at engagere sig i cross-platform, og har i øvrigt i tidens løb brudt alle løfter om cross-platform, senest med Silverlight-farcen, hvor man blev lovet cross-platform, men det aldrig blev indfriet, fordi MS ikke lagde den nødvendige energi i at få bibliotekerne til at virke cross-platform.

Derfor er det stadig en helt forkert beslutning at bruge .NET til cross-platform. Der vil med garanti være nogle biblioteker der ikke findes eller måske findes de, men virker på præcis samme måde som på Windows, og derfor virker programmerne som helhed ikke på andre platforme end Windows.

  • 10
  • 10
#2 Jimmy Thomsen

I lang tid blev Java til Windows og Mac OS udviklet af Microsoft og Apple, og de var inkompatible på mange områder, ligesom Performance varierede meget. Open Source implementeringen af Java til Linux lider stadig på disse punkter. Jeg er ikke ekspert på området, men jeg tror Sun gjorde deres specifikationer tilgængelige, men lod det være op til 3. parter at udvikle de relevante VMs. Så det er M$ vel i deres gode ret til også at gøre. Men de får næppe succes med det.

Jeg bryder mig ikke om M$, men til deres forsvar skal det da nævnes, at de udgav Silverligt til OSX. Med Mono kan Silverlight også køre, men uden DRM, desværre.

Jeg synes MS tager en del skridt i den rigtige retning. Igen, jeg har intet til overs for Microsoft, jeg synes de i mange henseender udvikler tredje-rangs software. Men .NET som Open Source lyder meget tiltalende, og kunne - hvis det bliver tilstrækkeligt udbredt - få mig til at droppe PHP og Java. Så lad os se hvordan det ser ud om en 5 års tid.

  • 4
  • 0
#4 Troels Henriksen

Java har altid, også før den blev open source, været cross-platform fordi der var afgørende for Sun. Sun lovede cross-platform og holdt løftet ved at lægge et stort engagement i at Java-programmer kunne køre på alle platforme...

Det passer ikke. I starten kørte Java elendigt (hvis overhovedet) på Linux, og det var kun via frivilliges engagement i Blackdown Java at der blev lavet en uofficiel port, som sidenhen blev udgangspunktet for den officielle. Så vidt jeg husker fra start-2000'erne var Linux også en andenklasses Java-platform dengang.

  • 8
  • 0
Log ind eller Opret konto for at kommentere