Ko te kaituhi o Node.js i whakaatu te turanga JavaScript haumaru Deno 1.0

I muri i nga tau e rua o te whakawhanaketanga i tukuna tuku nui tuatahi Homai 1.0, he papa mo te mahi tu-kotahi o nga tono i roto i te JavaScript me te TypeScript, ka taea te whakamahi hei hanga i nga kaikawe e whakahaere ana i runga i te tūmau. I whakawhanakehia e Ryan Dahl te papaaho (Ryan Dahl), kaihanga o Node.js. Pērā i a Node.js, ka whakamahi a Deno i te miihini JavaScript V8, e whakamahia ana hoki i roto i nga kaitirotiro a Chromium. I te wa ano, ehara a Deno i te marau o Node.js, engari he kaupapa hou i hangaia mai i te wahanga. Waehere kaupapa tohaina e i raro i te raihana MIT. Huihuinga kua rite mo Linux, Windows me macOS.

Ko te tau putanga nui e hono ana ki te whakapumautanga o nga API ki te mokowā ingoa Deno, kei a raatau te kawenga mo te taunekeneke o nga tono me te OS. Ko nga atanga rorohiko kei tenei wa kaore i whakapumau, ka hunahia ma te taunoa ka waatea noa ina rere ana i roto i te aratau "--unstable". I te wa e hangai ana nga momo putanga hou, ka noho pumau enei API. Ko te API kei roto i te mokowāingoa o te ao, kei roto ko nga mahi noa penei i te setTimeout() me te tiki(), he tata ki te API o nga kaitirotiro paetukutuku tikanga, ka whakawhanakehia i runga i nga paerewa Tukutuku mo nga kaitirotiro. Ko nga API e whakaratohia ana e Rust, e whakamahia tika ana i roto i te waehere papaarangi, me te atanga mo te whakawhanake i nga mono mo te wa whakahaere Deno, kaore ano kia whakapumauhia, ka whanake tonu.

Ko nga kaupapa matua mo te hanga i tetahi papaaho JavaScript hou ko te hiahia ki te whakakore i nga hapa ariā, whakaae i roto i te hoahoanga Node.js, me te whakarato ki nga kaiwhakamahi he taiao haumaru ake. Hei whakapai ake i te haumarutanga, ka tuhia te miihini V8 ki Rust, e karo ana i te maha o nga whakaraeraetanga ka puta mai i te raweke mahara taumata-iti, penei i te urunga kore-kore, nga tohu tohu korekore, me te nui o te aukati. Ka whakamahia te papaahi ki te tukatuka i nga tono i roto i te aratau aukati-kore Tokio, i tuhia ano ki te Rust. Ka taea e Tokio te hanga i nga tono mahi-nui i runga i te hoahoanga-a-takahanga, e tautoko ana i nga tono miro-maha me te tukatuka i nga tono whatunga i roto i te aratau tukutahi.

Main особенности Deno:

  • whirihoranga taunoa-haumarutanga. Ko te urunga kōnae, te whatunga, me te uru ki nga taurangi taiao kua monokia ma te taunoa, me tino whakaahei. Ko nga tono ma te taunoa ka whakahaerehia i roto i nga taiao pouaka kirikiri taratahi, kaore e taea te uru atu ki nga kaha o te punaha me te kore e tuku whakaaetanga marama;
  • Tautoko-i roto mo te TypeScript i tua atu o JavaScript. Ko te Kaihanga TypeScript paerewa e whakamahia ana ki te tirotiro i nga momo me te whakaputa JavaScript, e arai ana ki te pa ki te mahi i whakaritea ki te panui JavaScript i V8. I te wa kei te heke mai, ka whakamahere matou ki te whakarite i ta matou ake whakatinanatanga o te punaha arowhai momo TypeScript, ka pai ake te mahi tukatuka TypeScript ma te raupapa o te nui;
  • Ko te wa whakahaere ka puta mai i te ahua o te konae ka taea te whakahaere i a ia ano ("deno"). Hei whakahaere i nga tono ma te whakamahi i Deno ka nui tikiake mo tona turanga he kotahi te konae ka taea te whakahaere, tata ki te 20 MB te rahi, karekau he herenga o waho, kaore hoki e hiahiatia he whakaurunga motuhake ki te punaha. I tua atu, ko te deno ehara i te tono monolithic, engari he kohinga o nga kete pouaka i Rust (deno_core, waikura_v8), ka taea te whakamahi wehe;
  • I te wa e tiimata ana te kaupapa, me te utaina o nga waahanga, ka taea e koe te whakamahi i te korero URL. Hei tauira, ki te whakahaere i te kaupapa welcome.js, ka taea e koe te whakamahi i te whakahau “deno https://deno.land/std/examples/welcome.js”. Ko te waehere mai i nga rauemi o waho ka tangohia, ka keteroki ki te punaha o te rohe, engari kaore e whakahōu aunoatia (ko te whakahou me tino whakahaere te tono me te haki "--reload");
  • He pai te tukatuka o nga tono whatunga ma te HTTP i roto i nga tono, kua hoahoatia te papaaho mo te hanga tono whatunga tino mahi;
  • Te kaha ki te hanga i nga tono tukutuku mo te ao katoa ka taea te whakahaere i Deno me te kaitirotiro paetukutuku auau;
  • wātea huinga paerewa o kōwae, ko te whakamahinga kaore e hiahiatia kia herea ki nga whakawhirinakitanga o waho. Ko nga waahanga mai i te kohinga paerewa kua uru ki te tirotiro me te whakamatautau hototahi;
  • I tua atu i te wa mahi, ka mahi ano te papaaho Deno hei kaiwhakahaere kete ka taea e koe te uru ki nga waahanga ma te URL i roto i te waehere. Hei tauira, ki te uta i tetahi kōwae, ka taea e koe te tohu i roto i te waehere "kawemai * hei rangitaki mai i "https://deno.land/std/log/mod.ts". Ko nga konae i tangohia mai i nga tūmau o waho ma te URL kei te keteroki. Ka whakatauhia te here ki nga momo putanga ma te tautuhi i nga tau putanga kei roto i te URL, hei tauira, "https://unpkg.com/[email tiakina]/dist/liltest.js";
  • Kei roto i te hanganga he punaha tirotiro whakawhirinaki (te whakahau "deno info") me tetahi taputapu mo te whakahōputu waehere (deno fmt);
  • Ka taea te whakakotahi i nga tuhinga tono katoa ki te konae JavaScript kotahi.

Nga rereke mai i te Node.js:

  • Kaore a Deno e whakamahi i te kaiwhakahaere kete npm
    karekau e herea ki nga whare pupuri, ka whakatikahia nga waahanga ma te URL, ma te ara konae ranei, a ka taea te whakanoho i nga waahanga ki runga i tetahi paetukutuku;
  • Kaore a Deno e whakamahi "package.json" ki te tautuhi i nga waahanga;
  • Ko te rereketanga o te API, ko nga mahi tukutahi katoa i Deno ka hoki mai he kupu oati;
  • E hiahia ana a Deno ki te whakamaramatanga o nga whakaaetanga e tika ana mo nga konae, whatunga me nga taurangi taiao;
  • Ko nga hapa katoa kaore i whakawhiwhia ki nga kaihautu ka arahi ki te whakamutu i te tono;
  • Ka whakamahia e Deno te punaha kōwae ECMAScript me te kore e tautoko i te hiahia();
  • Ko te tūmau HTTP kua hangaia ki roto a Deno kua tuhia ki te TypeScript ka rere ki runga ake o nga turanga TCP taketake, i te wa e tuhia ana te tūmau HTTP Node.js ki C me te whakarato i nga here mo JavaScript. Kua aro nga kaiwhakawhanake a Deno ki te arotau i te paparanga turanga TCP katoa me te whakarato i tetahi atanga whanui ake. Ko te Deno HTTP Server he iti ake te whakaputanga engari ka whakapumau i te roanga iti e matapaehia ana. Hei tauira, i roto i te whakamatautau, he tono ngawari i runga i te tūmau Deno HTTP i taea te tukatuka i te 25 mano tono mo ia hekona me te roanga o te 1.3 milliseconds. I roto i te Node.js, he tono rite te tukatuka i te 34 mano tono mo ia hekona, engari ko nga waahi mai i te 2 me te 300 milliseconds.
  • Kaore a Deno i te hototahi me nga kohinga mo Node.js (NPM), engari kei te whakawhanakehia motuhake takawaenga mo te hototahi ki te whare pukapuka Node.js paerewa, i te wa e whanake ana, ka nui ake nga tono kua tuhia mo Node.js ka taea te whakahaere i Deno.
  • Source: opennet.ru

Tāpiri i te kōrero