Π₯ΠΎΡΡ ΡΡΠΎ ΠΈ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΡΠΌ, 2020 Π³ΠΎΠ΄ ΡΠΆΠ΅ Π²ΠΎΡ-Π²ΠΎΡ Π½Π°ΡΡΡΠΏΠΈΡ. ΠΡΠ° Π΄Π°ΡΡ ΠΌΡ Π΄ΠΎ ΡΠΈΡ
ΠΏΠΎΡ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π»ΠΈ ΠΊΠ°ΠΊ Π½Π΅ΡΡΠΎ ΡΠΎΡΠ΅Π΄ΡΠ΅Π΅ ΡΠΎ ΡΡΡΠ°Π½ΠΈΡ Π½Π°ΡΡΠ½ΠΎ-ΡΠ°Π½ΡΠ°ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠΎΠΌΠ°Π½ΠΎΠ², ΠΈ ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π΄Π΅Π»Π° ΠΎΠ±ΡΡΠΎΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ β Π΄ΠΎ 2020 Π³ΠΎΠ΄Π° ΡΠΎΠ²ΡΠ΅ΠΌ ΡΡΠΊΠΎΠΉ ΠΏΠΎΠ΄Π°ΡΡ.
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π»ΡΠ±ΠΎΠΏΡΡΠ½ΠΎ, ΠΊΠ°ΠΊΠΈΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π±ΡΠ΄ΡΡΠ΅Π΅ Π΄Π»Ρ ΠΌΠΈΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΎ Π²Ρ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ ΠΎΡΠΈΠ±Π°ΡΡΡ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΏΡΠ½ΠΊΡΡ β Π½Π΅ ΡΡΠΈΡΠ°ΠΉΡΠ΅ ΠΌΠΎΠΈ ΡΠ»ΠΎΠ²Π° Π½Π΅ΠΏΠΎΠ³ΡΠ΅ΡΠΈΠΌΠΎΠΉ ΠΈΡΡΠΈΠ½ΠΎΠΉ β ΠΎΠ΄Π½Π°ΠΊΠΎ Π½ΠΈΠΆΠ΅ Ρ ΠΈΠ·Π»ΠΎΠΆΡ ΡΠ²ΠΎΠΈ ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π½Π°Ρ ΠΆΠ΄Π΅Ρ. ΠΠ°ΡΠ° ΠΏΡΠΎΠ²ΠΈΠ΄Π΅Π½ΠΈΡ Ρ ΠΌΠ΅Π½Ρ Π½Π΅Ρ, Π½ΠΎ Ρ ΠΌΠΎΠ³Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
Π΄Π°Π½Π½ΡΡ
.
Rust ΡΡΠ°Π½Π΅Ρ ΠΌΠ΅ΠΉΠ½ΡΡΡΠΈΠΌΠΎΠΌ
Rust β ΡΡΠΎ ΠΌΡΠ»ΡΡΠΈΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ΄Π°Π΅Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ; Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ β Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡΡ . Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° Rust ΠΏΠΎΡ ΠΎΠΆ Π½Π° C++, ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΡΠΎΡΠ΅Π½ Π½Π° ΡΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π±ΠΎΠ»ΡΡΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΏΠ°ΠΌΡΡΡΡ, ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠΎΡ ΡΠ°Π½ΡΡ Π²ΡΡΠΎΠΊΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ.
Π£ΠΆΠ΅ ΡΠ΅ΡΡΡΠ΅ Π³ΠΎΠ΄Π° ΠΌΡ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌ Π±ΡΡΠ½ΠΎΠ΅ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΌΠ°Ρ, ΠΈΠΌΠ΅Π½Π½ΠΎ Π² 2020 Π³ΠΎΠ΄Ρ Rust ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΡΠ°Π½Π΅Ρ ΠΌΠ΅ΠΉΠ½ΡΡΡΠΈΠΌΠΎΠΌ. ΠΠΎΠ΄ ΡΠ»ΠΎΠ²ΠΎΠΌ Β«ΠΌΠ΅ΠΉΠ½ΡΡΡΠΈΠΌΒ» Π²ΡΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΡΡΠΎ-ΡΠΎ ΡΠ²ΠΎΠ΅, Π½ΠΎ Ρ ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ ΡΡΠ΅Π±Π½ΡΠ΅ Π·Π°Π²Π΅Π΄Π΅Π½ΠΈΡ Π½Π°ΡΠ½ΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π΅Π³ΠΎ Π² ΡΠ²ΠΎΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΠΏΠΎΡΠ²ΠΈΡΡΡ Π½ΠΎΠ²Π°Ρ Π²ΠΎΠ»Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ², ΠΏΠΈΡΡΡΠΈΡ Π½Π° Rust.
Π’ΠΎΠΏ Π»ΡΠ±ΠΈΠΌΡΡ
ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ²
Rust ΡΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π» ΡΠ΅Π±Ρ ΠΊΠ°ΠΊ Ρ
ΠΎΡΠΎΡΠΈΠΉ ΡΠ·ΡΠΊ Ρ ΠΎΡΠ΅Π½Ρ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΡΠΌ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ. ΠΠΌΠ΅Π½Π½ΠΎ Π΅Π³ΠΎ Facebook ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π²
ΠΡΠ»ΠΈ Π²Ρ ΠΏΡΠΈΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΡΠ·ΡΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠΎΠΈΠ»ΠΎ Π±Ρ Π²ΡΡΡΠΈΡΡ, Ρ ΠΎΡΠ΅Π½Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ Π½Π° Rust. Π’Π΅ΠΌ, ΠΊΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ΅Π½ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΏΠ»Π°Π½ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, ΡΠΎΠ²Π΅ΡΡΡ
ΠΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ GraphQL Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΡΠ°ΡΡΠΈ
GraphQL Π²
ΠΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π½Π°ΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ, Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π΅Ρ ΠΈ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ Π΄Π°Π½Π½ΡΡ . ΠΠΈΡΠ½ΠΎ Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ°Π½Π°Ρ GraphQL, ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ Π½Π΅ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·. ΠΠΎ ΠΌΠΎΠ΅ΠΌΡ ΠΌΠ½Π΅Π½ΠΈΡ, Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ , ΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π³ΠΎΠ»ΠΎΠ²Ρ Π²ΡΡΠ΅ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ REST API.
REST API Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠΎΠ΄Π³ΡΡΠ·ΠΊΠΈ Π΄Π°Π½Π½ΡΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ URL, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ GraphQL API ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π²Π°ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ΅ΡΠ΅Π· Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ Π·Π°ΠΏΡΠΎΡ.
GraphQL ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π»ΡΠ±ΡΡ
ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ², ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Π² ΡΠ°Π·Π½ΡΡ
ΡΡΠ΅Π΄Π°Ρ
ΠΈ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ, ΡΠΎΠ·Π΄Π°ΡΡΠΈΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°ΠΉΡΡ ΠΈ API. ΠΡΠ»ΠΈ Π²Ρ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½Ρ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΎΡΠ²ΠΎΠΈΡΡ GraphQL, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ
ΠΡΠΎΠ³ΡΠ΅ΡΡΠΈΠ²Π½ΡΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π°ΡΡΠ°Π²ΡΡ Ρ ΡΠΎΠ±ΠΎΠΉ ΡΡΠΈΡΠ°ΡΡΡΡ
ΠΡΠΎΠ³ΡΠ΅ΡΡΠΈΠ²Π½ΡΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΠΈΠ»ΠΈ PWA) ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: ΠΎΠ½ΠΈ ΡΠΎΡΠ΅ΡΠ°ΡΡ Π²ΡΠ΅ ΡΠΈΠ»ΡΠ½ΡΠ΅ ΡΡΠΎΡΠΎΠ½Ρ Π²Π΅Π±Π° Ρ Π»ΡΡΡΠΈΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ.
Π ΠΌΠΈΡΠ΅ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΡΠ΅ΠΌ Π½Π°ΡΠΈΠ²Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΈΡΡΡ ΠΏΠΎΠ΄ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. ΠΠΎΠ΄ΠΎΠ·ΡΠ΅Π²Π°Ρ, ΡΡΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΡΡΠΏΠ½ΡΠ΅ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠΈ ΠΏΠΎΠΉΠΌΡΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π°Π²ΡΠΊΠΈ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠΈΠ²Π½ΡΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π°Ρ ΠΆΠ΄Π΅Ρ ΠΌΠ°ΡΡΠΎΠ²ΡΠΉ ΠΏΡΠΈΡΠΎΠΊ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΈΠΏΠ°.
ΠΠ΄Π½Π°ΠΊΠΎ ΠΊΡΡΠΏΠ½ΡΠΌ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΡΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΡΡΡΠΎΠΈΡΡΡΡ β ΡΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Ρ Π»ΡΠ±ΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ. ΠΠ°Π΄Π°ΡΠ° ΡΠ΄Π΅Π»Π°ΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠΈΠ²Π½ΡΠΌΠΈ Π»ΡΠΆΠ΅Ρ Π½Π° ΠΏΠ»Π΅ΡΠΈ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²ΡΡ ΡΠΎΠ»Ρ ΡΠ°ΠΌ Π²ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ Ρ Web Workers API (API Π½Π°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ Π±ΡΠ°ΡΠ·Π΅ΡΠ°).
ΠΠ΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½ΠΈΠΊΡΠ΄Π° Π½Π΅ Π΄Π΅Π½ΡΡΡΡ. ΠΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ Π»ΡΠ΄Π΅ΠΉ ΠΏΠΎΠ΄Ρ Π²Π°ΡΡΠ²Π°ΡΡ ΠΌΡΡΠ»Ρ, ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠΈΠ²Π½ΠΎΠ³ΠΎ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΡ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅Ρ ΠΌΠ΅Π½ΡΡΠ΅ ΡΠ΅ΡΡΡΡΠ° ΠΈ Π»ΡΡΡΠ΅ ΠΎΠΊΡΠΏΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π·Π°ΡΡΠ°ΡΡ.
PWA Π²
Π‘Π΅ΠΉΡΠ°Ρ ΡΠ°ΠΌΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π°ΡΠΈΠ½Π°ΡΡ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠΈΠ²Π½ΡΠΌΠΈ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ β Π½Π°ΡΠ°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ
Web Assembly Π²ΡΠΉΠ΄Π΅Ρ Π² ΡΠ²Π΅Ρ
Web Assembly (ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΎ wasm) β ΡΡΠΎ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π΄Π»Ρ ΡΡΠ΅ΠΊΠΎΠ²ΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ. ΠΠ½ ΠΈΠ³ΡΠ°Π΅Ρ ΡΠΎΠ»Ρ ΠΏΠΎΡΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΡΠ΅Π»ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π΄Π»Ρ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΡΠ·ΡΠΊΠΎΠ² (C, C++, Rust) ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ Π² Π²Π΅Π± Π΄Π»Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡΠΎΠ³ΡΠ΅ΡΡΠΈΠ²Π½ΡΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ wasm.
ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Web Assembly ΠΏΠ΅ΡΠ΅ΠΊΠΈΠ΄ΡΠ²Π°Π΅Ρ ΠΌΠΎΡΡΠΈΠΊ ΠΌΠ΅ΠΆΠ΄Ρ JavaScript ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠΌΠΈ ΡΠ°Π·Π½ΡΡ ΡΡΠΎΠ²Π½Π΅ΠΉ. ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π½Π° Rust Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠΌ Π½Π° React. Web Assembly ΡΠ΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ.
ΠΠ°ΠΏΠΈΡΡ Π²ΡΡΡΡΠΏΠ»Π΅Π½ΠΈΡ ΠΎ ΡΠΎΠ»ΠΈ wasm Π² Π²Π΅Π±-ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ΅ Ρ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ Ρ JSConf.Asia 2019
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ β ΡΡΠΎ Π³Π»Π°Π²Π½ΠΎΠ΅, Π° ΠΎΠ±ΡΠ΅ΠΌΡ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ°ΡΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π΅Π΅ Π½Π° Π²ΡΡΠΎΡΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π²ΡΠ΅ ΡΡΡΠ΄Π½Π΅Π΅. Π’ΡΡ-ΡΠΎ Π² ΠΈΠ³ΡΡ ΠΈ Π²ΡΡΡΠΏΠ°ΡΡ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈΠ· C++ ΠΈΠ»ΠΈ Rust. Π‘ΠΊΠΎΡΠΎ ΠΌΡ ΡΡΠ°Π½Π΅ΠΌ ΡΠ²ΠΈΠ΄Π΅ΡΠ΅Π»ΡΠΌΠΈ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΡΡΠΏΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π΄ΠΎΠ±Π°Π²ΡΡ Web Assembly Π² ΡΠ²ΠΎΠΉ Π°ΡΡΠ΅Π½Π°Π», Π° Π΄Π°Π»ΡΡΠ΅ Π²ΡΠ΅ ΠΏΠΎΠΉΠ΄Π΅Ρ ΠΏΠΎ Π½Π°ΡΠ°ΡΡΠ°ΡΡΠ΅ΠΉ.
React ΡΠ΄Π΅ΡΠΆΠΈΡΡΡ Π½Π° Π²Π΅ΡΡΠΈΠ½Π΅
React β Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΎΡΡΡΠ²ΠΎΠΌ ΡΠ°ΠΌΠ°Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π°Ρ JavaScript-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΏΡΠΈΡΠ΅ΠΌ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π·Π°ΡΠ»ΡΠΆΠ΅Π½Π½ΠΎ. ΠΠ΅Π»Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° React Π»Π΅Π³ΠΊΠΎ ΠΈ Π·Π°Π½ΡΡΠ½ΠΎ. ΠΠΎΠΌΠ°Π½Π΄Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ·Π΄Π°Π»Π° ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠΏΡΠ°Π²ΠΈΠ»Π°ΡΡ Ρ ΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Ρ ΠΎΡΠΎΡΠΈΠΉ ΠΎΠΏΡΡ.
Π― ΡΠ°Π±ΠΎΡΠ°Π» ΠΈ Ρ Vue, ΠΈ Ρ Angular, ΠΈ Ρ React, ΠΈ Π²ΡΠ΅ ΠΎΠ½ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈΡΡ ΠΌΠ½Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΡΠΌΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°ΠΌΠΈ. Π’ΡΡ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ: ΡΠ΅Π»Ρ Π»ΡΠ±ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ β Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π·Π°Π΄Π°ΡΡ. ΠΠ½Π°ΡΠΈΡ, Π½ΡΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΠ΅ Π΄ΡΠΌΠ°ΡΡ ΠΎ Π²ΠΊΡΡΠΎΠ²ΡΡ
ΠΏΡΠΈΡΡΡΠ°ΡΡΠΈΡΡ
ΠΈ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΆΠ΅ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π·Π°Π΄Π°ΡΡ. Π‘ΠΏΠΎΡΠΈΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Β«Π»ΡΡΡΠ΅ Π²ΡΠ΅Ρ
Β», Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π±Π΅ΡΡΠΌΡΡΠ»Π΅Π½Π½ΠΎ. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π²ΡΠ±ΡΠ°ΡΡ Π΄Π»Ρ ΡΠ΅Π±Ρ ΠΎΠ΄ΠΈΠ½ ΠΈ Π½Π°ΠΏΡΠ°Π²ΠΈΡΡ Π²ΡΡ ΡΠ½Π΅ΡΠ³ΠΈΡ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ. ΠΠ΄ΠΎΡ
Π½ΠΎΠ²ΠΈΠ»ΠΈΡΡ? ΠΡΠ±Π΅ΡΠΈΡΠ΅
ΠΡΠ΅Π³Π΄Π° Π΄Π΅Π»Π°ΠΉΡΠ΅ ΡΡΠ°Π²ΠΊΡ Π½Π° JavaScript
ΠΠΎΠΆΠ½ΠΎ Ρ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΡΡΡΡ Π½Π°Π·Π²Π°ΡΡ 2010-Π΅ Π΄Π΅ΠΊΠ°Π΄ΠΎΠΉ JavaScript. ΠΠ³ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ Π·Π° ΡΡΠΈ Π³ΠΎΠ΄Ρ Π²Π·Π»Π΅ΡΠ΅Π»Π° Π΄ΠΎ Π½Π΅Π±Π΅Ρ ΠΈ, ΠΏΠΎΡ ΠΎΠΆΠ΅, ΠΏΡΠΎΡΠ΅ΡΡ Π½Π΅ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ Π·Π°ΠΌΠ΅Π΄Π»ΡΡΡΡΡ.
JavaScript ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅ΡΠΏΠ΅ΡΡ Π½Π°ΠΏΠ°Π΄ΠΊΠΈ β ΡΠ°ΡΡΠΎ ΠΎ Π½ΠΈΡ Π³ΠΎΠ²ΠΎΡΡΡ ΠΊΠ°ΠΊ ΠΎ Β«Π½Π΅Π½Π°ΡΡΠΎΡΡΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°Ρ Β». ΠΠΎ JavaScript β Π½Π΅ΠΎΡΡΠ΅ΠΌΠ»Π΅ΠΌΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π³ΠΈΠ³Π°Π½ΡΠ°: Netflix, Facebook, Google ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΡΡΠ³ΠΈΡ . Π£ΠΆΠ΅ ΠΈΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΡΡΠΎΠ³ΠΎ Π΅Π³ΠΎ ΡΡΠΎΠΈΡ ΡΡΠΈΡΠ°ΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ Π·Π°ΠΊΠΎΠ½Π½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΈ Π²ΡΠ΅ ΠΏΡΠΎΡΠΈΠ΅. Π‘ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²ΠΎΠΌ Π½ΠΎΡΠΈΡΠ΅ Π·Π²Π°Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π½Π° JavaScript β Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ², ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ·Π΄Π°Π»ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΊΡΡΡΡΡ , ΠΈΠ½Π½ΠΎΠ²Π°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ. ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅ Π²Π΅Π±-ΡΠ°ΠΉΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡΠΎΡ ΡΠ·ΡΠΊ Π² ΡΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΠΌΠ΅ΡΠ΅. Π ΠΈΡ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ!
Π’Π°ΠΊ ΡΡΠΎ Π²ΡΠ΅ΠΌΡ Π΄Π»Ρ JavaScript ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠ΅ΠΉΡΠ°Ρ ΠΎΡΠ΅Π½Ρ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ½ΠΎΠ΅. ΠΠ°ΡΠΏΠ»Π°ΡΡ ΡΠ°ΡΡΡΡ, ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ ΠΆΠΈΠ²Π΅Π΅ Π²ΡΠ΅Ρ
ΠΆΠΈΠ²ΡΡ
, ΡΡΠ½ΠΎΠΊ Π²Π°ΠΊΠ°Π½ΡΠΈΠΉ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΉ. ΠΡΠ»ΠΈ ΠΏΠΎΠ΄ΡΠΌΡΠ²Π°Π΅ΡΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Π½Π°ΡΡΠΈΡΡΡΡ ΠΏΠΈΡΠ°ΡΡ Π½Π° JavaScript, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠ΅ΡΠΈΡ ΠΊΠ½ΠΈΠ³
ΠΠΈΠ½Π°ΠΌΠΈΠΊΠ° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΠΈ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, ΡΡΠΎ Π΄ΠΎΡΠΈΡΠ°Π»ΠΈ! ΠΡΠ»ΠΈ Ρ ΠΏΡΠΎΠΏΡΡΡΠΈΠ» ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΊΠ»Π°ΡΡΠ½ΠΎΠ΅, Π½Π°ΠΏΠΈΡΠΈΡΠ΅ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ
ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ
ΠΈ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡ
, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ°.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com