Hvorfor Microsoft har utviklet et nytt språk kalt Typescript i stedet for å lage en C# til Javascript transpiler


Typescript er språket som brukes for å utvikle Javascript-applikasjoner. Jeg forstår ikke hvorfor et nytt språk ble opprettet i stedet for å bruke et modent og utviklende språk som C#. C# kunne ha blitt brukt for å transpilere koden til Javascript. Det finnes mange tredjeparts- og open source-prosjekter som gjør denne jobben. C# støtter nå closures, dynamisk nøkkelord, så å transpilere C# til Javascript ville vært enkelt. Fra syntaksen ser det også ut til at Typescript er påvirket av C#.

Så spørsmålet er

  1. Hvorfor har Microsoft utviklet et nytt språk kalt Typescript i stedet for å lage en C# til Javascript-transpiler? C# kunne ha blitt brukt til det samme formålet.
  2. Er det noen teknisk/annen grunn bak det?

Svar #1

Hvorfor har Microsoft utviklet et nytt språk kalt Typescript i stedet for å lage en C# til Javascript-transpiler? C# kunne ha blitt brukt til samme formål.

Er det noen teknisk/annen grunn bak det?

Teknisk sett ja, men nei. C#’s regler er ekstremt forskjellige fra JavaScript’s. De kan se like ut, men de er veldig forskjellige. (Det er litt som å si at Java og JavaScript er det samme, fordi de begge bruker krøllparenteser, og de begynner begge med Java.) TypeScript utvider JavaScript-språket. Du kan fortsatt skrive JavaScript i TypeScript. Det kunne du ikke gjort hvis du brukte C#.

Her er noen eksempler. I C# kan du ha flere konstruktører. JavaScript (som Highlander) kan det bare være én.

C# tillater metodeoverbelastning. JavaScript....Nei.

JavaScript kan ha et variabelt antall parametere i et metodekall. Du kan ha en metode som tar 5 parametere og kalle den med 5, 4, 0 eller 7 hvis du vil. C# kan ikke håndtere dette.

Nå kunne du generere JavaScript-kode fra C#, men egentlig tvinger du bare bruken av et delsett av JavaScript for å imøtekomme bruken av C#. TypeScript er et helt nytt språk å arbeide innenfor grensene for JavaScript, samtidig som det gir en viss struktur som sterkt typede språk tillater.

Svar #2

Typescript er en streng overmengde av Javascript, noe som betyr at nesten all gyldig JS også er gyldig Typescript. Det ble laget for interoperabilitet med Javascript. C# kunne aldri være på samme nivå. Mange forskjellige semantikker som kanskje ikke er umiddelbart åpenbare, men som definitivt er vanskelige.

Syntaksen kan være lik, men de to språkene er på et helt annet nivå når det gjelder funksjoner.

Relaterte artikler