utvikling
Neste Javascript er rett rundt hjørnet. Dette er de største nyhetene
Ecmascript 2021 kommer i juni og byr på forbedrede muligheter med strenger, promises, feiltyper, logiske operatorer og mye mer.
Gode gamle Javascript. Det omstridte språket har fått 25 år på baken og ligger på eller rett ved toppen i flere rangeringer av populariteten til programmeringsspråk.
Ikke så underlig, da språket er en del av fundamentet til den allestedsnærværende webplattformen.
Javascript kom til verden som et serverspråk med navnet Livescript, oppfunnet av Brendan Eich, som den gang var ansatt i Netscape – forgjengeren til Mozilla og Firefox. Javascript debuterte på klientsiden i Netscape Navigator 2 i 1995. Internet Explorer 3 kom året etter med støtte for språket under navnet Jscript.
I 1996 begynte Netscape å samarbeide med standardiseringsorganisasjonen Ecma International om å gjøre språket til en industristandard.
Navnet kunne ikke selskapene enes om, så offisielt heter det standardiserte språket Ecmascript. Det er neppe noen som sier dette til daglig, og selv Microsoft omtaler språket som Javascript i disse dager, hvor særlig felles nettskyinteresser har skapt stor forbrødring mellom tidligere rivaler.
Også på serveren og skrivebordet
Node.js og oppkomlingen Deno har utvidet språkets popularitet som miljø for kjøring på server og PC, med Googles danskutviklede Javascript-motor V8 som ryggstykke. Programvare som Microsofts populære, lettvekts-IDE – Visual Studio Code – bygger på Electron-plattformen, som benytter nettleserteknologi på skrivebordet.
Javascript er neppe universelt elsket, og språket bærer preg av å ha blitt utviklet med mange forskjellige ideer på blokka.
Men alternativene, som for eksempel Dart og Google Web Toolkit, som kan «transpiles» til Javascript, har aldri riktig fått luft under vingene i forbindelse med webutvikling. Det ser kanskje annerledes ut med Typescript, som er oppfunnet av danske Anders Hejlsberg, men det er et stykke igjen opp til originalens popularitet.
Den neste versjonen av Javascript heter bare Ecmascript 2021 og lanseres i neste måned. Det følger en pen håndfull nyheter med denne.
Enkel måte å erstatte delstrenger på
Først på programmet er en ny replaceAll-metode for strenger.
For øyeblikket er det ingen måte å erstatte alle forekomster av en delstreng på uten å bruke et globalt, regulært uttrykk («regex»), heter det i begrunnelsen. Metoden replace påvirker kun den første forekomsten. Der finnes mange bevis for at programmerere ønsker seg noe i denne stilen – det kan blant annet sees på nettsteder som Stackoverflow, skriver utviklerne.
De nye forslaget er ganske intuitivt:
Søkeparameteren kan være en alminnelig streng eller et regulært uttrykk.
Ny asynkron metode
Promise.any er en ny mulighet i forbindelse med asynkron programmering. Metoden any tar som argument et array eller en annen «iterable» av «promises», og returnerer når et av disse «løftene» er oppfylt. Dersom intet «promise» er oppfylt, utløses en AggregateError-feil.
De kan se slik ut:
eller uten async/await-syntaks:
Ifølge begrunnelsen finnes det er en rekke Javascript-biblioteker for «promises» som inneholder en tilsvarende any-metode.
Selve AggregateError-feiltypen er også ny. Den kan brukes til å representere flere feil på en gang.
Logiske tildelingsoperatorer
Neste punkt på dagsordenen er logiske tildelingsoperatorer, som fra før finnes i mange språk. Dette ser slik ut:
Ifølge forslaget er syntaksen inspirert av Ruby.
Svake referanser og numeriske skilletegn
Det er flere nyheter i den kommende versjonen. Spesifikasjonen for sortering av arrayer har blitt presisert, slik at antallet av tilfeller hvor det returneres forskjellige resultater fra ulike implementeringer, reduseres.
Språket får svake referanser, noe som er kjent fra mange andre språk med garbage collection. Verdier som er knyttet til variabler med svake referanser, kan samles inn av garbage collector-prosessen (GC). Det kan benyttes til cache-verdier som man kanskje kan få bruk for i framtiden. Hvis GC-en ikke har vært på besøk med ljåen i mellomtiden, kan verdien hentes tilbake fra de levende dødes land.
Det samme forslaget kommer med en FinalizationRegistry-klasse, som kan utføre operasjoner for opprydding når et objekt innsamles av GC-en.
Til slutt i godteposen kommer det en mulighet for å separere tall i grupper, slik at lesbarheten forbedres. Dette finnes også i mange andre språk og kan se slik ut:
Noen av nyhetene støttes allerede av de store nettleserne, og med tjenesten Can I Use kan du følge med på utviklingen.
Denne nyhetsartikkelen ble først publisert på danske Version2/Ingeniøren, og gjøres tilgjengelig på norsk gjennom vår samarbeidsavtale med Teknologiens mediehus/Ingeniøren.