Programmering

Deno 1.0 ankommer for at udfordre Node.js

Deno, en JavaScript / TypeScript-runtime, der lover stærkere sikkerhed og en overlegen udvikleroplevelse til Node.js, nåede sin 1.0-frigivelsesstatus den 13. maj 2020.

Oprettet af Ryan Dahl, som også oprettede Node.js, blev Deno designet til at afhjælpe en række Node-mangler, især sikkerhed. (Deno er et anagram over Node.) Projektet blev offentligt omkring to år siden.

I modsætning til Node bruger Deno ikke NPM-pakkehåndteringen; i stedet indlæses moduler ved at henvise til URL'er eller filstier. Filosofien bag Deno er at tjene som et produktivt, sikkert scriptmiljø for den moderne programmør. Det kan være en erstatning for hjælpeskripter, der muligvis er skrevet i Python eller Bash. Instruktioner til installation af Deno findes på deno.land.

Højdepunkter i Deno inkluderer:

  • Deno er runtime til udførelse af JavaScript og TypeScript uden for browseren i en enkelt eksekverbar (denocode).
  • Deno er som standard sikker uden fil-, netværks- eller miljøadgang, medmindre det udtrykkeligt er aktiveret.
  • Deno dør af ufangede fejl.
  • Alle asynkroniserede handlinger i Deno giver et løfte.
  • Deno-scripts kan bundtes i en enkelt JavaScript-fil.
  • Deno har en indbygget afhængighedsinspektør (deno infocode) og en kodeformater.
  • Deno leverer et sæt reviderede standardmoduler.
  • Deno blev designet som en serie rustkasser for at muliggøre integration i forskellige lag.

Ved at forklare årsagerne til Deno skrev Dahl og medbidragere Bartuk Iwanczuk og Bert Belder i et blogindlæg, at selvom JavaScript er det naturlige valg til dynamisk sprogværktøj, blev Node designet i 2009, da JavaScript var et meget andet sprog. Som et resultat kan opbygning af applikationer på Node være en vanskelig indsats.

”Vi føler, at JavaScript-landskabet og den omgivende softwareinfrastruktur har ændret sig nok til, at det var værd at forenkle,” skrev Deno-skaberne. "Vi søger et sjovt og produktivt scriptmiljø, der kan bruges til en lang række opgaver."

$config[zx-auto] not found$config[zx-overlay] not found