ΠΠ·Π»Π΅Π·Π΅ Node.js 26.0.0, ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° JavaScript. Node.js 26.0 Π΅ ΠΊΠ»Π°ΡΠΈΡΠΈΡΠΈΡΠ°Π½ Π² Π΄ΡΠ»Π³ΠΎΡΡΠΎΡΠ½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°, Π½ΠΎ ΡΠΎΠ·ΠΈ ΡΡΠ°ΡΡΡ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ ΡΠ°ΠΌΠΎ ΠΏΡΠ΅Π· ΠΎΠΊΡΠΎΠΌΠ²ΡΠΈ ΡΠ»Π΅Π΄ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΈΡ. ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° Node.js 26.x ΡΠ΅ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈ Π΄ΠΎ ΠΌΠ°ΠΉ 2029 Π³ΠΎΠ΄ΠΈΠ½Π°. ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° LTS Π²Π΅ΡΡΠΈΡ Node.js 24.x ΡΠ΅ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈ Π΄ΠΎ 30 Π°ΠΏΡΠΈΠ» 2028 Π³ΠΎΠ΄ΠΈΠ½Π°, Π° Π½Π° ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²Π΅Π½ΠΈΠΊΠ° 22.x - Π΄ΠΎ 30 Π°ΠΏΡΠΈΠ» 2027 Π³ΠΎΠ΄ΠΈΠ½Π°. ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° LTS Π²Π΅ΡΡΠΈΡ 20.x ΠΏΡΠΈΠΊΠ»ΡΡΠΈ Π½Π° 30 Π°ΠΏΡΠΈΠ» 2026 Π³ΠΎΠ΄ΠΈΠ½Π°, Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Node.js 25.x ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π° Π½Π° 1 ΡΠ½ΠΈ 2026 Π³ΠΎΠ΄ΠΈΠ½Π°.
ΠΡΠ½ΠΎΠ²Π½ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ:
- API Temporal Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅, ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΠΉΠΊΠΈ Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ Π΄Π°ΡΠΈ ΠΈ Π²ΡΠ΅ΠΌΠ΅. API ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°ΡΠΈ Ρ ΠΈ Π±Π΅Π· ΡΠ°ΡΠΎΠ²ΠΈ Π·ΠΎΠ½ΠΈ, ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅, ΡΠΎΡΠΌΠ°ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·Ρ ΠΎΠ΄Π° ΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ Π²ΡΠ΅ΠΌΠ΅. ΠΡΠ΅ΠΌΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π·Π°Π΄Π°Π΄Π΅Π½ΠΎ Π² Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠ°ΡΠΎΠ²Π°ΡΠ° Π·ΠΎΠ½Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ (Temporal.PlainDate, Temporal.PlainTime, Temporal.PlainDateTime), Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ° ΠΊΡΠΌ ΡΠ°ΡΠΎΠ²Π°ΡΠ° Π·ΠΎΠ½Π° (Temporal.ZonedDateTime) ΠΈ Π² Π΅ΠΏΠΎΡ Π°Π»Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ (Temporal.Instant β Π±ΡΠΎΠΉ Π½Π°Π½ΠΎΡΠ΅ΠΊΡΠ½Π΄ΠΈ ΠΎΡ 1 ΡΠ½ΡΠ°ΡΠΈ 1970 Π³ΠΎΠ΄ΠΈΠ½Π°).
- ΠΠ²ΠΈΠ³Π°ΡΠ΅Π»ΡΡ V8 Π΅ ΠΎΠ±Π½ΠΎΠ²Π΅Π½ Π΄ΠΎ Π²Π΅ΡΡΠΈΡ 14.6, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π² Chromium 146. ΠΡ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡΡΠ° Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° Node.js Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π°Π½Π΅ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ° Π² Π΅Π΄ΠΈΠ½ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΌΠ΅ΡΠΎΠ΄Π° Iterator.concat(), ΠΊΠ°ΠΊΡΠΎ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° βupsertβ Π·Π° ΠΎΠΏΡΠΎΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Ρ ΠΊΠΎΠ»Π΅ΠΊΡΠΈΠΈ ΠΎΡ Π΄Π²ΠΎΠΉΠΊΠΈ ΠΊΠ»ΡΡ/ΡΡΠΎΠΉΠ½ΠΎΡΡ Π² JavaScript ΠΎΠ±Π΅ΠΊΡΠΈΡΠ΅ Map ΠΈ WeakMap.
- HTTP ΠΊΠ»ΠΈΠ΅Π½ΡΡΡ undici Π΅ ΠΎΠ±Π½ΠΎΠ²Π΅Π½ Π΄ΠΎ Π²Π΅ΡΡΠΈΡ 8.x.
- ΠΠ΅ΡΠΎΠ΄ΡΡ http.Server.prototype.writeHeader() Π΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°Ρ, Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° http.Server.prototype.writeHead().
ΠΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Node.js ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°ΠΊΡΠΎ Π·Π° ΡΡΡΠ²ΡΡΠ½ΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½Π΅ Π½Π° Web ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°ΠΊΠ° ΠΈ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈ ΠΈ ΡΡΡΠ²ΡΡΠ½ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ. ΠΠ° ΡΠ°Π·ΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° Π·Π° Node.js Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½Π° Π³ΠΎΠ»ΡΠΌΠ° ΠΊΠΎΠ»Π΅ΠΊΡΠΈΡ ΠΎΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ, Π² ΠΊΠΎΡΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ΅ΡΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΡΠ²ΡΡΠΈ ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, ΠΌΠΎΠ΄ΡΠ»ΠΈ Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ web ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ²Π΅, ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ Π½Π° WebSocket ΠΈ Ajax, ΠΊΠΎΠ½Π΅ΠΊΡΠΎΡΠΈ ΠΊΡΠΌ Π‘Π£ΠΠ (MySQL, PostgreSQL, SQLite, MongoDB), ΡΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°ΡΠΎΡΠΈ, CSS Π΄Π²ΠΈΠΆΠ΅ΡΠΈ Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»ΠΈ, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΠΊΡΠΈΠΏΡΠΎΠ°Π»Π³ΠΎΡΠΈΡΠΌΠΈ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ (OAuth), XML ΠΏΠ°ΡΡΠ΅ΡΠΈ.
ΠΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΈ Π·Π°ΡΠ²ΠΊΠΈ, Node.js ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π΅Π½ ΠΌΠΎΠ΄Π΅Π» Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΡΠ±ΠΈΡΠΈΡ Π² Π½Π΅Π±Π»ΠΎΠΊΠΈΡΠ°Ρ ΡΠ΅ΠΆΠΈΠΌ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° callback-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ. ΠΠ° ΠΌΡΠ»ΡΠΈΠΏΠ»Π΅ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° Π²ΡΡΠ·ΠΊΠΈ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΈ ΠΊΠ°ΡΠΎ epoll, kqueue, /dev/poll ΠΈ select. ΠΠ° ΠΌΡΠ»ΡΠΈΠΏΠ»Π΅ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° Π²ΡΡΠ·ΠΊΠΈ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° libuv, ΠΊΠΎΡΡΠΎ Π΅ Π½Π°Π΄ΡΡΡΠΎΠΉΠΊΠ° Π½Π°Π΄ libev Π² ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ Unix ΠΈ Π½Π°Π΄ IOCP Π² Windows. ΠΠ° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠ» ΠΎΡ Π½ΠΈΡΠΊΠΈ (thread pool) ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° libeio, Π° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° DNS Π·Π°ΡΠ²ΠΊΠΈ Π² Π½Π΅Π±Π»ΠΎΠΊΠΈΡΠ°Ρ ΡΠ΅ΠΆΠΈΠΌ Π΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½ c-ares. ΠΡΠΈΡΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅, ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π² ΠΏΡΠ» ΠΎΡ Π½ΠΈΡΠΊΠΈ ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π°, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° ΡΠΈΠ³Π½Π°Π»ΠΈ, ΠΏΡΠ΅Π΄Π°Π²Π°Ρ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° ΠΎΡ ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΡΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΡΡΠ΅Π· Π½Π΅Π½Π°Π·ΠΎΠ²Π°Π½ ΠΊΠ°Π½Π°Π» (pipe).
ΠΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° JavaScript ΠΊΠΎΠ΄ ΡΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° ΡΡΠ΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ V8, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΎΡ Google. ΠΠΎ ΡΠ²ΠΎΡΡΠ° ΡΡΡΠ½ΠΎΡΡ Node.js Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° Perl AnyEvent, Ruby Event Machine, Python asyncio ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠΈΡΡΠ° Π½Π° ΡΡΠ±ΠΈΡΠΈΡ Π² Tcl, Π½ΠΎ ΡΠΈΠΊΡΠ»ΡΡ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΡΠ±ΠΈΡΠΈΡ (event loop) Π² Node.js Π΅ ΡΠΊΡΠΈΡ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΈ Π½Π°ΠΏΠΎΠΌΠ½Ρ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΡΡΠ±ΠΈΡΠΈΡ Π² ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ°Π±ΠΎΡΠ΅ΡΠΎ Π² Π±ΡΠ°ΡΠ·ΡΡ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
