ื”ืžื—ื‘ืจ ืฉืœ Node.js ื”ืฆื™ื’ ืืช ืคืœื˜ืคื•ืจืžืช JavaScript ื”ืžืื•ื‘ื˜ื—ืช Deno 1.0

ืœืื—ืจ ืฉื ืชื™ื™ื ืฉืœ ืคื™ืชื•ื— ื”ืฆื™ื’ ืฉื—ืจื•ืจ ื’ื“ื•ืœ ืจืืฉื•ืŸ ื“ื ื• 1.0, ืคืœื˜ืคื•ืจืžื” ืœื‘ื™ืฆื•ืข ืขืฆืžืื™ ืฉืœ ื™ื™ืฉื•ืžื™ื ื‘-JavaScript ื•ื‘-TypeScript, ืืฉืจ ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื” ืœื™ืฆื™ืจืช ืžื˜ืคืœื™ื ื”ืคื•ืขืœื™ื ืขืœ ื”ืฉืจืช. ื”ืคืœื˜ืคื•ืจืžื” ืคื•ืชื—ื” ืขืœ ื™ื“ื™ ืจื™ืืŸ ื“ืืœ (ืจืื™ื™ืŸ ื“ื”ืœ), ื”ื™ื•ืฆืจ ืฉืœ Node.js. ื›ืžื• Node.js, Deno ืžืฉืชืžืฉ ื‘ืžื ื•ืข JavaScript V8, ื”ืžืฉืžืฉ ื’ื ื‘ื“ืคื“ืคื ื™ื ืžื‘ื•ืกืกื™ Chromium. ื™ื—ื“ ืขื ื–ืืช, Deno ืื™ื ื• ืžื–ืœื’ ืฉืœ Node.js, ืืœื ื”ื•ื ืคืจื•ื™ืงื˜ ื—ื“ืฉ ืฉื ื•ืฆืจ ืžืืคืก. ืงื•ื“ ืคืจื•ื™ืงื˜ ืžื•ืคืฅ ืขืœ ื™ื“ื™ ืชื—ืช ืจื™ืฉื™ื•ืŸ MIT. ืืกื™ืคื•ืช ืžื•ึผื›ึธืŸ ืขื‘ื•ืจ ืœื™ื ื•ืงืก, ื—ืœื•ื ื•ืช ื•-macOS.

ืžืกืคืจ ื”ื’ืจืกื” ื”ืžืฉืžืขื•ืชื™ ืงืฉื•ืจ ืœื™ื™ืฆื•ื‘ ื”-APIs ื‘ืžืจื—ื‘ ื”ืฉืžื•ืช ืฉืœ Deno, ื”ืื—ืจืื™ื ืขืœ ื”ืื™ื ื˜ืจืืงืฆื™ื” ืฉืœ ื™ื™ืฉื•ืžื™ื ืขื ืžืขืจื›ืช ื”ื”ืคืขืœื”. ืžืžืฉืงื™ ืชื•ื›ื ื” ืฉื™ืฉ ืขื“ ื›ื” ืœื ื”ืชื™ื™ืฆื‘, ืžื•ืกืชืจื™ื ื›ื‘ืจื™ืจืช ืžื—ื“ืœ ื•ื–ืžื™ื ื™ื ืจืง ื›ืืฉืจ ื”ื ืคื•ืขืœื™ื ื‘ืžืฆื‘ "--ืœื ื™ืฆื™ื‘". ื›ื›ืœ ืฉื™ื™ื•ื•ืฆืจื• ื’ืจืกืื•ืช ื—ื“ืฉื•ืช, ืžืžืฉืงื™ API ื›ืืœื” ื™ื”ืคื›ื• ื™ืฆื™ื‘ื™ื ื‘ื”ื“ืจื’ื”. ื”-API ื‘ืžืจื—ื‘ ื”ืฉืžื•ืช ื”ื’ืœื•ื‘ืœื™, ื”ื›ื•ืœืœ ืคื•ื ืงืฆื™ื•ืช ื ืคื•ืฆื•ืช ื›ืžื• setTimeout() ื•-fetch(), ืงืจื•ื‘ ื›ื›ืœ ื”ืืคืฉืจ ืœ-API ืฉืœ ื“ืคื“ืคื ื™ ืื™ื ื˜ืจื ื˜ ืจื’ื™ืœื™ื ื•ืžืคื•ืชื— ื‘ื”ืชืื ืœืชืงื ื™ Web ืขื‘ื•ืจ ื“ืคื“ืคื ื™ื. ืžืžืฉืงื™ ื”-API ืฉืžืกืคืง Rust, ื”ืžืฉืžืฉื™ื ื™ืฉื™ืจื•ืช ื‘ืงื•ื“ ื”ืคืœื˜ืคื•ืจืžื”, ื›ืžื• ื’ื ื”ืžืžืฉืง ืœืคื™ืชื•ื— ืชื•ืกืคื™ื ืœ-Deno runtime, ื˜ืจื ื”ืชื™ื™ืฆื‘ื• ื•ืžืžืฉื™ื›ื™ื ืœื”ืชืคืชื—.

ื”ืžื ื™ืขื™ื ื”ืขื™ืงืจื™ื™ื ืœื™ืฆื™ืจืช ืคืœื˜ืคื•ืจืžืช JavaScript ื—ื“ืฉื” ื”ื™ื• ื”ืจืฆื•ืŸ ืœื—ืกืœ ืฉื’ื™ืื•ืช ืžื•ืฉื’ื™ื•ืช, ื”ื•ื“ื” ื‘ืืจื›ื™ื˜ืงื˜ื•ืจืช Node.js, ื•ืœืกืคืง ืœืžืฉืชืžืฉื™ื ืกื‘ื™ื‘ื” ืžืื•ื‘ื˜ื—ืช ื™ื•ืชืจ. ื›ื“ื™ ืœืฉืคืจ ืืช ื”ืื‘ื˜ื—ื”, ืžื ื•ืข ื”-V8 ื›ืชื•ื‘ ื‘-Rust, ืžื” ืฉืžื•ื ืข ืจื‘ื•ืช ืžื”ื—ื•ืœืฉื•ืช ื”ื ื•ื‘ืขื•ืช ืžืžื ื™ืคื•ืœืฆื™ื” ืฉืœ ื–ื™ื›ืจื•ืŸ ื‘ืจืžื” ื ืžื•ื›ื”, ื›ื’ื•ืŸ ื’ื™ืฉื” ื—ื•ืคืฉื™ืช ืœืื—ืจ, ื”ืคื ื™ื•ืช ืžืฆื‘ื™ืขื•ืช ืืคืกื™ื•ืช ื•ื—ืจื™ืคืช ืžืื’ืจ. ื”ืคืœื˜ืคื•ืจืžื” ืžืฉืžืฉืช ืœืขื™ื‘ื•ื“ ื‘ืงืฉื•ืช ื‘ืžืฆื‘ ืœื ื—ื•ืกื ื˜ื•ืงื™ื•, ื›ืชื•ื‘ ื’ื ื‘ื—ืœื•ื“ื”. Tokio ืžืืคืฉืจืช ืœืš ืœื™ืฆื•ืจ ื™ื™ืฉื•ืžื™ื ื‘ืขืœื™ ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื ื”ืžื‘ื•ืกืกื™ื ืขืœ ืืจื›ื™ื˜ืงื˜ื•ืจื” ืžื•ื ืขืช ืื™ืจื•ืขื™ื, ื”ืชื•ืžื›ื™ื ื‘ืจื™ื‘ื•ื™ ื”ืฉื—ืœื•ืช ื•ืขื™ื‘ื•ื“ ื‘ืงืฉื•ืช ืจืฉืช ื‘ืžืฆื‘ ืืกื™ื ื›ืจื•ื ื™.

ื”ืขื™ืงืจื™ ืชื›ื•ื ื•ืช ื“ื ื•:

  • ืชืฆื•ืจืช ื‘ืจื™ืจืช ืžื—ื“ืœ ืžื•ื›ื•ื•ื ืช ืื‘ื˜ื—ื”. ื’ื™ืฉื” ืœืงื‘ืฆื™ื, ืจืฉืช ื•ื’ื™ืฉื” ืœืžืฉืชื ื™ ืกื‘ื™ื‘ื” ืžื•ืฉื‘ืชื™ื ื›ื‘ืจื™ืจืช ืžื—ื“ืœ ื•ื™ืฉ ืœื”ืคืขื™ืœ ืื•ืชื ื‘ืžืคื•ืจืฉ. ื™ื™ืฉื•ืžื™ื ื›ื‘ืจื™ืจืช ืžื—ื“ืœ ืคื•ืขืœื™ื ื‘ืกื‘ื™ื‘ื•ืช ืืจื’ื– ื—ื•ืœ ืžื‘ื•ื“ื“ื•ืช ื•ืื™ื ื ื™ื›ื•ืœื™ื ืœื’ืฉืช ืœื™ื›ื•ืœื•ืช ื”ืžืขืจื›ืช ืœืœื ืžืชืŸ ื”ืจืฉืื•ืช ืžืคื•ืจืฉื•ืช;
  • ืชืžื™ื›ื” ืžื•ื‘ื ื™ืช ื‘-TypeScript ืžืขื‘ืจ ืœ-JavaScript. ื”ืžื”ื“ืจ ื”ืกื˜ื ื“ืจื˜ื™ ืฉืœ TypeScript ืžืฉืžืฉ ืœื‘ื“ื™ืงืช ืกื•ื’ื™ื ื•ื™ืฆื™ืจืช JavaScript, ืžื” ืฉืžื•ื‘ื™ืœ ืœื”ื™ื˜ ื‘ื™ืฆื•ืขื™ื ื‘ื”ืฉื•ื•ืื” ืœื ื™ืชื•ื— JavaScript ื‘-V8. ื‘ืขืชื™ื“, ืื ื• ืžืชื›ื ื ื™ื ืœื”ื›ื™ืŸ ื™ื™ืฉื•ื ืžืฉืœื ื• ืฉืœ ืžืขืจื›ืช ื‘ื“ื™ืงืช ืกื•ื’ TypeScript, ืฉืชืฉืคืจ ืืช ื‘ื™ืฆื•ืขื™ ื”ืขื™ื‘ื•ื“ ืฉืœ TypeScript ื‘ืกื“ืจ ื’ื•ื“ืœ;
  • ื–ืžืŸ ื”ืจื™ืฆื” ืžื’ื™ืข ื‘ืฆื•ืจื” ืฉืœ ืงื•ื‘ืฅ ื”ืคืขืœื” ืขืฆืžืื™ ืื—ื“ ("deno"). ื›ื“ื™ ืœื”ืคืขื™ืœ ื™ื™ืฉื•ืžื™ื ื‘ืืžืฆืขื•ืช Deno ื–ื” ืžืกืคื™ืง ื”ื•ืจื“ ืœืคืœื˜ืคื•ืจืžื” ืฉืœื• ื™ืฉ ืงื•ื‘ืฅ ื”ืคืขืœื” ืื—ื“, ื‘ื’ื•ื“ืœ ืฉืœ ื›-20 ืžื’ื”-ื‘ื™ื™ื˜, ืฉืื™ืŸ ืœื• ืชืœื•ืช ื—ื™ืฆื•ื ื™ืช ื•ืื™ื ื• ื“ื•ืจืฉ ื”ืชืงื ื” ืžื™ื•ื—ื“ืช ื‘ืžืขืจื›ืช. ื™ืชืจ ืขืœ ื›ืŸ, deno ืื™ื ื• ื™ื™ืฉื•ื ืžื•ื ื•ืœื™ื˜ื™, ืืœื ื”ื•ื ืื•ืกืฃ ืฉืœ ื—ื‘ื™ืœื•ืช ืืจื’ื– ื‘- Rust (deno_core, ื—ืœื•ื“ื”_v8), ืฉื‘ื• ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื ืคืจื“;
  • ื‘ืขืช ื”ืคืขืœืช ื”ืชื•ื›ื ื™ืช, ื›ืžื• ื’ื ืœื˜ืขื™ื ืช ืžื•ื“ื•ืœื™ื, ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ื›ืชื•ื‘ืช URL. ืœื“ื•ื’ืžื”, ื›ื“ื™ ืœื”ืคืขื™ืœ ืืช ืชื•ื›ื ื™ืช welcome.js, ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ืคืงื•ื“ื” "deno https://deno.land/std/examples/welcome.js". ืงื•ื“ ืžืžืฉืื‘ื™ื ื—ื™ืฆื•ื ื™ื™ื ืžื•ืจื™ื“ื™ื ื•ืžืื—ืกื ื™ื ื‘ืžื˜ืžื•ืŸ ื‘ืžืขืจื›ืช ื”ืžืงื•ืžื™ืช, ืืš ืœืขื•ืœื ืœื ืžืชืขื“ื›ืŸ ืื•ื˜ื•ืžื˜ื™ืช (ืขื“ื›ื•ืŸ ืžื—ื™ื™ื‘ ื”ืคืขืœืช ื”ืืคืœื™ืงืฆื™ื” ื‘ืžืคื•ืจืฉ ืขื ื”ื“ื’ืœ "--reload");
  • ืขื™ื‘ื•ื“ ื™ืขื™ืœ ืฉืœ ื‘ืงืฉื•ืช ืจืฉืช ื‘ืืžืฆืขื•ืช HTTP ื‘ืืคืœื™ืงืฆื™ื•ืช; ื”ืคืœื˜ืคื•ืจืžื” ืžื™ื•ืขื“ืช ืœื™ืฆื™ืจืช ื™ื™ืฉื•ืžื™ ืจืฉืช ื‘ืขืœื™ ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื;
  • ื”ื™ื›ื•ืœืช ืœื™ืฆื•ืจ ื™ื™ืฉื•ืžื™ ืื™ื ื˜ืจื ื˜ ืื•ื ื™ื‘ืจืกืœื™ื™ื ืฉื ื™ืชืŸ ืœื”ืคืขื™ืœ ื’ื ื‘ื“ื ื• ื•ื’ื ื‘ื“ืคื“ืคืŸ ืื™ื ื˜ืจื ื˜ ืจื’ื™ืœ;
  • ื–ืžื™ื ื•ืช ืกื˜ ืกื˜ื ื“ืจื˜ื™ ืฉืœ ืžื•ื“ื•ืœื™ื, ืฉื”ืฉื™ืžื•ืฉ ื‘ื• ืื™ื ื• ืžื—ื™ื™ื‘ ื”ืชืงืฉืจื•ืช ืœืชืœื•ืช ื—ื™ืฆื•ื ื™ืช. ืžื•ื“ื•ืœื™ื ืžืื•ืกืฃ ื”ืกื˜ื ื“ืจื˜ื™ื ืขื‘ืจื• ื‘ื™ืงื•ืจืช ื•ื‘ื“ื™ืงื•ืช ืชืื™ืžื•ืช ื ื•ืกืคื•ืช;
  • ื‘ื ื•ืกืฃ ืœื–ืžืŸ ื”ืจื™ืฆื”, ืคืœื˜ืคื•ืจืžืช Deno ืคื•ืขืœืช ื’ื ื›ืžื ื”ืœืช ื—ื‘ื™ืœื•ืช ื•ืžืืคืฉืจืช ืœืš ืœื’ืฉืช ืœืžื•ื“ื•ืœื™ื ืœืคื™ ื›ืชื•ื‘ืช URL ื‘ืชื•ืš ื”ืงื•ื“. ืœื“ื•ื’ืžื”, ื›ื“ื™ ืœื˜ืขื•ืŸ ืžื•ื“ื•ืœ, ืืชื” ื™ื›ื•ืœ ืœืฆื™ื™ืŸ ื‘ืงื•ื“ "ื™ื‘ื•ื * ื‘ืชื•ืจ ื™ื•ืžืŸ ืžืชื•ืš "https://deno.land/std/log/mod.ts". ืงื‘ืฆื™ื ืฉื”ื•ืจื“ื• ืžืฉืจืชื™ื ื—ื™ืฆื•ื ื™ื™ื ื“ืจืš URL ื ืฉืžืจื™ื ื‘ืžื˜ืžื•ืŸ. ื”ืชื—ื™ื™ื‘ื•ืช ืœื’ืจืกืื•ืช ืžื•ื“ื•ืœ ื ืงื‘ืขืช ืขืœ ื™ื“ื™ ืฆื™ื•ืŸ ืžืกืคืจื™ ื’ืจืกืื•ืช ื‘ืชื•ืš ื›ืชื•ื‘ืช ื”ืืชืจ, ืœื“ื•ื’ืžื”, "https://unpkg.com/[ืžื•ื’ืŸ ื‘ื“ื•ื"ืœ]/dist/liltest.js";
  • ื”ืžื‘ื ื” ื›ื•ืœืœ ืžืขืจื›ืช ืžืฉื•ืœื‘ืช ืœื‘ื“ื™ืงืช ืชืœื•ืช (ืคืงื•ื“ืช "deno info") ื•ื›ืœื™ ืขื–ืจ ืœืขื™ืฆื•ื‘ ืงื•ื“ (deno fmt);
  • ื ื™ืชืŸ ืœืฉืœื‘ ืืช ื›ืœ ืกืงืจื™ืคื˜ื™ ื”ื™ื™ืฉื•ื ืœืงื•ื‘ืฅ JavaScript ืื—ื“.

ื”ื‘ื“ืœื™ื ืž-Node.js:

  • Deno ืœื ืžืฉืชืžืฉ ื‘ืžื ื”ืœ ื”ื—ื‘ื™ืœื•ืช ืฉืœ npm
    ื•ืื™ื ื• ืงืฉื•ืจ ืœืžืื’ืจื™ื, ืžื•ื“ื•ืœื™ื ืžื˜ื•ืคืœื™ื ื‘ืืžืฆืขื•ืช ื›ืชื•ื‘ืช URL ืื• ื ืชื™ื‘ ืงื•ื‘ืฅ, ื•ื ื™ืชืŸ ืœืžืงื ืืช ื”ืžื•ื“ื•ืœื™ื ืขืฆืžื ื‘ื›ืœ ืืชืจ ืื™ื ื˜ืจื ื˜;
  • Deno ืื™ื ื• ืžืฉืชืžืฉ ื‘-"package.json" ื›ื“ื™ ืœื”ื’ื“ื™ืจ ืžื•ื“ื•ืœื™ื;
  • ื”ื‘ื“ืœ API, ื›ืœ ื”ืคืขื•ืœื•ืช ื”ืืกื™ื ื›ืจื•ื ื™ื•ืช ื‘-Deno ืžื—ื–ื™ืจื•ืช ื”ื‘ื˜ื—ื”;
  • Deno ื“ื•ืจืฉ ื”ื’ื“ืจื” ืžืคื•ืจืฉืช ืฉืœ ื›ืœ ื”ื”ืจืฉืื•ืช ื”ื“ืจื•ืฉื•ืช ืขื‘ื•ืจ ืงื‘ืฆื™ื, ืžืฉืชื ื™ ืจืฉืช ื•ืกื‘ื™ื‘ื”;
  • ื›ืœ ื”ืฉื’ื™ืื•ืช ืฉืื™ื ืŸ ืžืกื•ืคืงื•ืช ืขื ื”ืžื˜ืคืœื™ื ืžื•ื‘ื™ืœื•ืช ืœืกื™ื•ื ื”ื‘ืงืฉื”;
  • Deno ืžืฉืชืžืฉ ื‘ืžืขืจื›ืช ืžื•ื“ื•ืœ ECMAScript ื•ืื™ื ื• ืชื•ืžืš ื‘- require();
  • ืฉืจืช ื”-HTTP ื”ืžื•ื‘ื ื” ืฉืœ Deno ื›ืชื•ื‘ ื‘-TypeScript ื•ืคื•ืขืœ ืขืœ ื’ื‘ื™ ืฉืงืขื™ TCP ืžืงื•ืจื™ื™ื, ื‘ืขื•ื“ ืฉืฉืจืช ื”-HTTP ืฉืœ Node.js ื›ืชื•ื‘ ื‘-C ื•ืžืกืคืง bindings ืขื‘ื•ืจ JavaScript. ื”ืžืคืชื—ื™ื ืฉืœ Deno ื”ืชืžืงื“ื• ื‘ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืฉืœ ื›ืœ ืฉื›ื‘ืช ืฉืงืข ื”-TCP ื•ื‘ืžืชืŸ ืžืžืฉืง ื›ืœืœื™ ื™ื•ืชืจ. ืฉืจืช HTTP ืฉืœ Deno ืžืกืคืง ืชืคื•ืงื” ื ืžื•ื›ื” ื™ื•ืชืจ ืืš ืžื‘ื˜ื™ื— ืื—ื–ื•ืจ ื ืžื•ืš ืฉื ื™ืชืŸ ืœื—ื™ื–ื•ื™. ืœื“ื•ื’ืžื”, ื‘ื‘ื“ื™ืงื”, ืืคืœื™ืงืฆื™ื” ืคืฉื•ื˜ื” ื”ืžื‘ื•ืกืกืช ืขืœ ืฉืจืช HTTP ืฉืœ Deno ื”ืฆืœื™ื—ื” ืœืขื‘ื“ 25 ืืœืฃ ื‘ืงืฉื•ืช ื‘ืฉื ื™ื™ื” ืขื ื—ื‘ื™ื•ืŸ ืžืงืกื™ืžืœื™ ืฉืœ 1.3 ืžื™ืœื™ืฉื ื™ื•ืช. ื‘-Node.js, ืืคืœื™ืงืฆื™ื” ื“ื•ืžื” ืขื™ื‘ื“ื” 34 ืืœืฃ ื‘ืงืฉื•ืช ื‘ืฉื ื™ื™ื”, ืืš ื–ืžืŸ ื”ื”ืฉื”ื™ื” ื ืข ื‘ื™ืŸ 2 ืœ-300 ืžื™ืœื™ืฉื ื™ื•ืช.
  • Deno ืื™ื ื• ืชื•ืื ืœื—ื‘ื™ืœื•ืช ืขื‘ื•ืจ Node.js (NPM), ืืœื ืžืคื•ืชื— ื‘ื ืคืจื“ ืฉื›ื‘ืช ื‘ื™ื ื™ื™ื ืขื‘ื•ืจ ืชืื™ืžื•ืช ืขื ืกืคืจื™ื™ืช Node.js ื”ืกื˜ื ื“ืจื˜ื™ืช, ื›ื›ืœ ืฉื”ื™ื ืžืชืคืชื—ืช, ื™ื•ืชืจ ื•ื™ื•ืชืจ ื™ื™ืฉื•ืžื™ื ืฉื ื›ืชื‘ื• ืขื‘ื•ืจ Node.js ื™ื•ื›ืœื• ืœืคืขื•ืœ ื‘-Deno.
  • ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”