Π‘ΠΎΡΡΠΎΡΠ»ΡΡ ΡΠ΅Π»ΠΈΠ· JavaScript-ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Deno 1.16, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠΉ Π΄Π»Ρ ΠΎΠ±ΠΎΡΠΎΠ±Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°) ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° ΡΠ·ΡΠΊΠ°Ρ JavaScript ΠΈ TypeScript. ΠΡΠΎΠ΅ΠΊΡ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ Π°Π²ΡΠΎΡΠΎΠΌ Node.js Π Π°ΠΉΠ°Π½ΠΎΠΌ ΠΠ°Π»Π΅ΠΌ (Ryan Dahl). ΠΠΎΠ΄ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Rust ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ MIT. ΠΠΎΡΠΎΠ²ΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Ρ Π΄Π»Ρ Linux, Windows ΠΈ macOS.
ΠΡΠΎΠ΅ΠΊΡ ΡΡ ΠΎΠΆ Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎΠΉ Node.js ΠΈ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π΅ΠΌΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ JavaScript-Π΄Π²ΠΈΠΆΠΎΠΊ V8, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎ ΡΠ»ΠΎΠ²Π°ΠΌ Π°Π²ΡΠΎΡΠ° Node.js, ΠΈΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ΄ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΡ ΠΏΡΠΎΡΡΡΡΠΎΠ² ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΈΠΊΠ° ΠΈ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ Π½Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ Π½ΡΠ°Π½ΡΠ°ΠΌΠΈ:
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Rust, ΡΡΠΎ, ΠΏΠΎ ΠΌΠ½Π΅Π½ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ ΡΠΈΡΠΊ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠΉ ΡΠ°Π±ΠΎΡΠΎΠΉ Ρ ΠΏΠ°ΠΌΡΡΡΡ (ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΡΡΠ΅ΡΠ°, use-after-free ΠΈ ΠΏΡ.);
- Deno Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ npm ΠΈ package.json, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΏΡΡΡΠΌ ΡΠΊΠ°Π·Π°Π½ΠΈΡ URL ΠΈΠ»ΠΈ ΠΏΡΡΠΈ ΠΊ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΈΠ»ΠΈΡ Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ;
- ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΎΠ±ΠΎΡΠΎΠ±Π»Π΅Π½Π½ΠΎ Π² ΠΏΠ΅ΡΠΎΡΠ½ΠΈΡΠ°Ρ ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΅ΡΠΈ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, Π±Π΅Π· ΡΠ²Π½ΠΎ Π²ΡΠ΄Π°Π½Π½ΡΡ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ;
- Π Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ Π·Π°Π»ΠΎΠΆΠ΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Π½Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Deno, ΡΠ°ΠΊ ΠΈ Π² ΠΎΠ±ΡΡΠ½ΠΎΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠ΅;
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ «ES Modules» ΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ require();
- ΠΡΠ±ΡΠ΅ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠΌ ΠΎΡΠΈΠ±ΠΊΠΈ Π² Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ ΠΈΡ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ;
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° TypeScript ΠΏΠΎΠΌΠΈΠΌΠΎ JavaScript;
- ΠΠΎΠ»Π½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π³ΠΎΡΠΎΠ²ΠΎΠΉ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ — 84 ΠΠ (Π² zip-Π°ΡΡ ΠΈΠ²Π΅ — 31 ΠΠ) Π² Π²ΠΈΠ΄Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°;
- Π ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΈ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π°;
- ΠΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Dino ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π·Π°ΠΏΡΠΎΡΡ Π² Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠ΅ΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Tokio, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠΉ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΎΠ±ΡΡΠΈΠΉΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ (event-driven) Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ. Π’Π°ΠΊΠΆΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΡΡΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ HTTP-ΡΠ΅ΡΠ²Π΅Ρ Deno ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° TypeScript ΠΏΠΎΠ²Π΅ΡΡ Π½Π°ΡΠΈΠ²Π½ΡΡ TCP-ΡΠΎΠΊΠ΅ΡΠΎΠ², ΡΡΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ.
Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΎΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ:
- ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ (4 ΠΏΠ°ΡΡΠ°);
- ΠΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ 15 ΠΎΡΠΈΠ±ΠΎΠΊ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΠ΅ΠΏΠ΅ΡΡ TLS-ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ HTTP/2, ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΊΠΈ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΡ.;
- ΠΠΎΠ»Π΅Π΅ Π΄Π²ΡΡ Π΄Π΅ΡΡΡΠΊΠΎΠ² Π½ΠΎΠ²ΠΎΠ²Π²Π΅Π΄Π΅Π½ΠΈΠΉ, ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π½Π΅Π΅ ΡΠ΅ΡΡΠΎΠ²ΡΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌ Deno.startTls ΠΈ Deno.TestDefinition.permissions, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ JS-Π΄Π²ΠΈΠΆΠΊΠ° V8 Π΄ΠΎ Π²Π΅ΡΡΠΈΠΈ 9.7 ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ React 17 JSX.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru