Kyiv Go Meetup ΠΌΠ°ΠΉ 2018 Π³.:
ΠΠΎΠ΄Π΅ΡΠ°ΡΠΎΡ: - ΠΠ΄ΡΠ°Π²Π΅ΠΉΡΠ΅ Π²ΡΠΈΡΠΊΠΈ! ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π²ΠΈ, ΡΠ΅ ΡΡΠ΅ ΡΡΠΊ! ΠΠ½Π΅Ρ ΠΈΠΌΠ°ΠΌΠ΅ Π΄Π²Π°ΠΌΠ° ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΠ΅Π»ΠΈ - ΠΡΠΎΡΠ° ΠΈ ΠΠ°Π½Ρ. Π©Π΅ ΠΈΠΌΠ° ΠΎΡΠ΅ Π΄Π²Π΅, Π°ΠΊΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅. ΠΡΡΠ²ΠΈΡΡ Π»Π΅ΠΊΡΠΎΡ Π΅ ΠΠ»Π΅ΠΊΡΠ΅ΠΉ ΠΡΠ°ΡΠ΅Π², ΡΠΎΠΉ ΡΠ΅ Π½ΠΈ ΡΠ°Π·ΠΊΠ°ΠΆΠ΅ Π·Π° GopherJS.
ΠΠ»Π΅ΠΊΡΠ΅ΠΉ ΠΡΠ°ΡΠ΅Π² (ΠΏΠΎ-Π½Π°ΡΠ°ΡΡΠΊ β ΠΠ): β ΠΠ· ΡΡΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π° Go ΠΈ ΠΏΠΈΡΠ° ΡΠ΅Π± ΡΡΠ»ΡΠ³ΠΈ Π½Π° Go. ΠΠΎΠ½ΡΠΊΠΎΠ³Π° ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²ΠΈΡΠ΅ Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° ΡΡΡΠ±Π²Π° Π΄Π° Π²Π»Π΅Π·Π΅ΡΠ΅ Π² Π½Π΅Π³ΠΎ ΡΡΡΠ½ΠΎ. ΠΡΠΊΠ°ΠΌ Π΄Π° Π³ΠΎΠ²ΠΎΡΡ Π·Π° ΠΌΠΎΡ ΠΎΠΏΠΈΡ ΠΈ ΠΏΡΠΎΡΡΠ²Π°Π½Π΅ Π½Π° Go Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
ΠΠ΅Π³Π΅Π½Π΄Π°ΡΠ° Π΅ ΡΠ»Π΅Π΄Π½Π°ΡΠ°: ΠΏΡΡΠ²ΠΎ ΡΠ΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π°ΡΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ Go Π²ΡΠ² ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π°, ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ°Π½Π΅ ΡΠΎΠ²Π°. ΠΠΌΠ° Π΄Π²Π° Π½Π°ΡΠΈΠ½Π° - Web Assembly ΠΈ GopherJS. ΠΠ΅ΠΊΠ° Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅Π·ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ.
ΠΠ°ΠΊΠ²ΠΎ Π½Π΅ Π΅ Π½Π°ΡΠ΅Π΄ Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°?
ΠΡΠΈΡΠΊΠΈ Π»ΠΈ ΡΠ° ΡΡΠ³Π»Π°ΡΠ½ΠΈ, ΡΠ΅ Π²ΡΠΈΡΠΊΠΎ Π΅ Π½Π°ΡΠ΅Π΄ Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°?
ΠΡΠΌΠ° Π»ΠΈ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ ΡΠ΅ΡΡΠΎΠ²Π΅? ΠΠ°Π²Π½ΠΎ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅? ΠΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ°? ΠΠ»ΠΎΠ±Π°.
ΠΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Ρ Π°ΡΠ΅ΡΠ²Π°ΠΌ ΡΠΈΡΠ°ΡΠ°, ΠΊΠΎΠΉΡΠΎ Π΅Π΄ΠΈΠ½ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΊΠ°Π·Π° Π² ΠΊΠ½ΠΈΠ³Π°ΡΠ° ΡΠΈ:
Javascript Π½ΡΠΌΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΎΡ ΡΠΈΠΏΠΎΠ²Π΅. Π‘Π΅Π³Π° ΡΠ΅ Π½Π°Π·ΠΎΠ²Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΡΠ΅ΡΠ½Π°Ρ
Π² Ρ
ΠΎΠ΄Π° Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΡΠΈ ΠΈ ΡΠ΅ ΠΎΠ±ΡΡΠ½Ρ ΠΊΠ°ΠΊ ΡΠ΅ ΡΠ΅ΡΠ°Π²Π°Ρ.
Π’ΠΈΠΏΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎ ΡΡΡΠ΄Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΡΠ΅ΡΠ΅ ΡΠΈΠΏΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π² Javasript - ΠΈΠΌΠ° ΡΠ΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ ΡΠΈΠΏΠ° Π½Π° ΠΎΠ±Π΅ΠΊΡΠ°, Π½ΠΎ Π²ΡΡΡΠ½ΠΎΡΡ ΡΠΎΠ²Π° Π½ΡΠΌΠ° Π½ΠΈΡΠΎ ΠΎΠ±ΡΠΎ Ρ ΡΠΈΠΏΠΎΠ²Π΅ΡΠ΅. Π’ΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π΅ ΡΠ΅ΡΠ΅Π½ Π² TypeScript (Π΄ΠΎΠ±Π°Π²ΠΊΠ° ΠΊΡΠΌ Javasript) ΠΈ Flow (ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΡΠ°ΡΠΈΡΠ΅Π½ ΡΠΈΠΏ Π² Javascript). ΠΡΡΡΠ½ΠΎΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡΡ Π²Π΅ΡΠ΅ Π΅ Π΄ΠΎΡΡΠΈΠ³Π½Π°Π» ΡΠΎΡΠΊΠ°ΡΠ° Π½Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ Π»ΠΎΡ ΡΠΈΠΏ ΡΠΈΡΡΠ΅ΠΌΠ° Π² Javascript.
Π Π±ΡΠ°ΡΠ·ΡΡΠ° Π½ΡΠΌΠ° ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΊΠ°ΡΠΎ ΡΠ°ΠΊΠ°Π²Π° - ΠΈΠΌΠ° Π½ΡΠΊΠΎΠΈ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ ΠΈ βΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΈβ ΡΡΠ½ΠΊΡΠΈΠΈ Π² Π±ΡΠ°ΡΠ·ΡΡΠΈΡΠ΅. ΠΠΎ Π² Javascript Π½ΡΠΌΠ° ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΊΠ°ΡΠΎ ΡΠ°ΠΊΠ°Π²Π°. Π’ΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π²Π΅ΡΠ΅ Π±Π΅ΡΠ΅ ΡΠ΅ΡΠ΅Π½ Π²Π΅Π΄Π½ΡΠΆ ΠΎΡ jQuery (Π²ΡΠΈΡΠΊΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ
Π° jQuery Ρ Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΈ, ΠΏΠΎΠΌΠΎΡΠ½ΠΈΡΠΈ, ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ Π±ΡΡ
Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ°). Π‘Π΅Π³Π° Π²ΡΠΈΡΠΊΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Lodash:
ΠΠ±ΡΠ°ΡΠ½ΠΎ ΠΎΠ±Π°ΠΆΠ΄Π°Π½Π΅ ΠΏΠΎ Π΄ΡΠ²ΠΎΠ»ΠΈΡΠ΅. ΠΠΈΡΠ»Ρ, ΡΠ΅ Π²ΡΠ΅ΠΊΠΈ Π²ΠΈΠ΄Ρ Javascript ΠΊΠΎΠ΄ ΠΏΡΠ΅Π΄ΠΈ ΠΎΠΊΠΎΠ»ΠΎ 5 Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΈ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°ΡΠ΅ ΠΊΠ°ΡΠΎ βΡΡΠΊΠ°β ΠΎΡ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½Π° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ ΠΎΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡ. Π‘Π΅Π³Π° ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π΅ ΡΠ΅ΡΠ΅Π½ (Ρ ΠΏΡΡΠΊΠ°Π½Π΅ΡΠΎ Π½Π° ES-15 ΠΈΠ»ΠΈ ES-16), ΠΎΠ±Π΅ΡΠ°Π½ΠΈΡΡΠ° ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΊΡΠΌ Javascript ΠΈ Π²ΡΠ΅ΠΊΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΈΡΠ° ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ Π·Π° ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅.
ΠΠΎΠΊΠ°ΡΠΎ Π½Π΅ Π΄ΠΎΠΉΠ΄Π΅ Π°Π΄ΡΡ Π½Π° Promice... ΠΠ΅ Π·Π½Π°ΠΌ ΠΊΠ°ΠΊ ΡΠ΅ ΡΠΏΡΠ°Π²Ρ front-end ΠΈΠ½Π΄ΡΡΡΡΠΈΡΡΠ°, Π½ΠΎ Π²ΠΈΠ½Π°Π³ΠΈ ΡΠ΅ ΠΊΠ°ΡΠ°Ρ Π² Π½ΡΠΊΠ°ΠΊΠ²Π° ΡΡΡΠ°Π½Π½Π° Π΄ΠΆΡΠ½Π³Π»Π°. Π£ΡΠΏΡΡ
ΠΌΠ΅ ΠΈ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ Π°Π΄ΡΠΊΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΡ. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ΡΠΈΡ
ΠΌΠ΅ ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΊΠ°ΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ
ΠΌΠ΅ Π½ΠΎΠ² ΠΏΡΠΈΠΌΠΈΡΠΈΠ² - async/await:
ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Ρ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΡΡΡΠ° Π΅ ΡΠ΅ΡΠ΅Π½. Async/await Π΅ Π΄ΠΎΡΡΠ° ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½ ΠΏΡΠΈΠΌΠΈΡΠΈΠ² Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π΅Π·ΠΈΡΠΈ. Python ΠΈ Π΄ΡΡΠ³ΠΈ ΠΈΠΌΠ°Ρ ΡΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ - Π΄ΠΎΡΡΠ° Π΅ Π΄ΠΎΠ±ΡΡ. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ΅ΡΠ΅Π½.
ΠΠ°ΠΊΡΠ² ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π½Π΅ Π΅ ΡΠ΅ΡΠ΅Π½? ΠΠΊΡΠΏΠΎΠ½Π΅Π½ΡΠΈΠ°Π»Π½ΠΎ Π½Π°ΡΠ°ΡΡΠ²Π°ΡΠ°ΡΠ° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ Π½Π° ΡΠ°ΠΌΠΊΠΈΡΠ΅, ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡΠ° Π½Π° Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΈ ΡΠ°ΠΌΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ.
- Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΡΡ Π½Π° Javascript Π΅ ΠΌΠ°Π»ΠΊΠΎ ΡΡΡΠ°Π½Π΅Π½. ΠΡΠΈΡΠΊΠΈ Π·Π½Π°Π΅ΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ Ρ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ΡΠΎ Π½Π° ΠΌΠ°ΡΠΈΠ² ΠΈ ΠΎΠ±Π΅ΠΊΡ ΠΈ Π΄ΡΡΠ³ΠΈ ΡΠ΅Π³ΠΈ.
- Javascript Π΅ ΠΌΡΠ»ΡΠΈ-ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠ°. Π’ΠΎΠ²Π° Π΅ ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π½Π°Π»Π΅ΠΆΠ°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ΅Π³Π°, ΠΊΠΎΠ³Π°ΡΠΎ Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ»ΡΠΌΠ°:
- Π²ΡΠ΅ΠΊΠΈ ΠΏΠΈΡΠ΅ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΠΈΠ»ΠΎΠ²Π΅ - Π½ΡΠΊΠΎΠΈ ΠΏΠΈΡΠ°Ρ ΡΡΡΡΠΊΡΡΡΠ½ΠΎ, Π΄ΡΡΠ³ΠΈ ΠΏΠΈΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎ, ΡΠ°Π·Π»ΠΈΡΠ½ΠΈΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ ΠΏΠΈΡΠ°Ρ ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½Π°ΡΠΈΠ½ΠΈ;
- ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ, ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ;
- ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ βΠ·Π°Π±Π°Π²Π»Π΅Π½ΠΈΠ΅β Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ Π² Javasript - Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° rambda ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ ΠΈ ΡΠ΅Π³Π° Π½ΠΈΠΊΠΎΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ, Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ Π² ΡΠ°Π·ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°.
- ΠΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΠΎΠΊΠ°Π·Π²Π° Π³ΠΎΠ»ΡΠΌΠΎ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π²ΡΡΡ Ρ Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΈ ΡΡ ΡΠ΅ Π΅ ΡΠ°Π·ΡΠ°ΡΠ½Π°Π»Π° Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ. ΠΠ°ΠΊΠ΅ΡΠΈΡΠ΅ ΡΠ° Π½Π΅ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΈ Π΅Π΄ΠΈΠ½ Ρ Π΄ΡΡΠ³: Π½ΡΠΊΠΎΠΈ ΡΠ° Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° ΠΎΠ±Π΅ΡΠ°Π½ΠΈΡ, Π΄ΡΡΠ³ΠΈ ΡΠ° Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° async/await, Π½ΡΠΊΠΎΠΈ ΡΠ° Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° ΠΎΠ±ΡΠ°ΡΠ½ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡ. Π’Π΅ ΡΡΡΠΎ ΠΏΠΈΡΠ°Ρ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠΈ!
- Π’ΠΎΠ²Π° ΠΏΡΠ°Π²ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΡΡΠ΄Π΅Π½ Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°. Π’ΡΡΠ΄Π½ΠΎ Π΅ Π΄Π° ΠΎΡΠΊΡΠΈΠ΅ΡΠ΅ Π³ΡΠ΅ΡΠΊΠ°, Π°ΠΊΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΠΊΠΎΠ΄Π°.
ΠΠ°ΠΊΠ²ΠΎ Π΅ Web Assembly?
Π‘ΠΌΠ΅Π»ΠΈΡΠ΅ ΠΌΠΎΠΌΡΠ΅ΡΠ° ΠΎΡ Mozilla Foundation ΠΈ ΡΠ΅Π΄ΠΈΡΠ° Π΄ΡΡΠ³ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΈΠ·ΠΌΠΈΡΠ»ΠΈΡ Π° ΡΠ°ΠΊΠΎΠ²Π° Π½Π΅ΡΠΎ ΠΊΠ°ΡΠΎ Web Assembly. ΠΠ°ΠΊΠ²ΠΎ Π΅ ΡΠΎΠ²Π°?
- Π’ΠΎΠ²Π° Π΅ Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π°, Π²Π³ΡΠ°Π΄Π΅Π½Π° Π² Π±ΡΠ°ΡΠ·ΡΡΠ°, ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π΄Π²ΠΎΠΈΡΠ΅Π½ ΡΠΎΡΠΌΠ°Ρ.
- ΠΠ²ΠΎΠΈΡΠ½ΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ ΡΡΠΈΠ³Π°Ρ Π΄ΠΎ ΡΠ°ΠΌ ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ ΠΏΠΎΡΡΠΈ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½ΠΎ, ΡΠΎΠ΅ΡΡ Π±ΡΠ°ΡΠ·ΡΡΡΡ Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ° Π²ΡΠΈΡΠΊΠΈ βΡΡΠΊΠ°β Π½Π° javascript ΠΊΠΎΠ΄ Π²ΡΠ΅ΠΊΠΈ ΠΏΡΡ.
- ΠΡΠΈΡΠΊΠΈ Π±ΡΠ°ΡΠ·ΡΡΠΈ ΠΈΠΌΠ°Ρ Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°.
- Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΡΠΎΠ²Π° Π΅ Π±Π°ΠΉΡ ΠΊΠΎΠ΄, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ Π·Π° Π²ΡΠ΅ΠΊΠΈ Π΅Π·ΠΈΠΊ.
- Π§Π΅ΡΠΈΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ Π±ΡΠ°ΡΠ·ΡΡΠ° Π²Π΅ΡΠ΅ ΡΠ΅ Π΄ΠΎΡΡΠ°Π²ΡΡ Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Web Assembly.
- Π‘ΠΊΠΎΡΠΎ ΠΎΡΠ°ΠΊΠ²Π°ΠΌΠ΅ Π²Π³ΡΠ°Π΄Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π² Go. Π’Π°Π·ΠΈ Π½ΠΎΠ²Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π²Π΅ΡΠ΅ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π°: GOARCH=wasm GOOS=js (ΡΠΊΠΎΡΠΎ). ΠΠ°ΡΠ΅Π³Π°, Π΄ΠΎΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΠΌ, Π½Π΅ Π΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π΅Π½, Π½ΠΎ ΠΈΠΌΠ° ΠΈΠ·ΡΠ²Π»Π΅Π½ΠΈΠ΅, ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ Π² Go.
ΠΠ°ΠΊΠ²ΠΎ Π΄Π° ΠΏΡΠ°Π²ΠΈΠΌ ΡΠ΅Π³Π°? GopherJS
ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ Π½ΡΠΌΠ°ΠΌΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Web Assembly, ΠΈΠΌΠ° ΡΡΠ°Π½ΡΠΏΠΈΠ»Π°ΡΠΎΡ ΠΊΠ°ΡΠΎ GopherJS.
- Go ΠΊΠΎΠ΄ΡΡ ΡΠ΅ ΡΡΠ°Π½ΡΠΏΠΈΠ»ΠΈΡΠ° Π² βΡΠΈΡΡβ Javascript.
- Π Π°Π±ΠΎΡΠΈ Π²ΡΠ² Π²ΡΠΈΡΠΊΠΈ Π±ΡΠ°ΡΠ·ΡΡΠΈ - Π½ΡΠΌΠ° Π½ΠΎΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠ°ΠΌΠΎ ΠΎΡ ΠΌΠΎΠ΄Π΅ΡΠ½ΠΈ Π±ΡΠ°ΡΠ·ΡΡΠΈ (ΡΠΎΠ²Π° Π΅ Vanilla JS, ΠΊΠΎΠΉΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Π½Π° Π²ΡΠΈΡΠΊΠΎ).
- ΠΠΌΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΏΠΎΡΡΠΈ Π²ΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ Go ΠΈΠΌΠ°, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ goroutines ΠΈ ΠΊΠ°Π½Π°Π»ΠΈ... Π²ΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΎΠ±ΠΈΡΠ°ΠΌΠ΅ ΠΈ Π·Π½Π°Π΅ΠΌ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ΅ ΠΏΠΎΡΡΠΈ ΡΡΠ»Π°ΡΠ° ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, Ρ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ½Π΅Π·ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π½ΡΠΌΠ° ΡΠΌΠΈΡΡΠ» Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ Π² Π±ΡΠ°ΡΠ·ΡΡΠ°: syscall, Π½Π΅ΡΠ½ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ (ΠΈΠΌΠ° net/http ΠΊΠ»ΠΈΠ΅Π½Ρ, Π½ΠΎ Π½ΡΠΌΠ° ΡΡΡΠ²ΡΡ ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡΡ ΡΠ΅ Π΅ΠΌΡΠ»ΠΈΡΠ° ΡΡΠ΅Π· XMLHttpRequest). ΠΠ±ΡΠΎ Π²Π·Π΅ΡΠΎ ΡΡΠ»Π°ΡΠ° ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΅ Π½Π°Π»ΠΈΡΠ½Π° - Π΅ΡΠΎ Ρ Π² Π±ΡΠ°ΡΠ·ΡΡΠ°, Π΅ΡΠΎ stdlib Π½Π° Go, ΠΊΠΎΠΉΡΠΎ ΠΎΠ±ΠΈΡΠ°ΠΌΠ΅.
- Π¦ΡΠ»Π°ΡΠ° ΠΏΠ°ΠΊΠ΅ΡΠ½Π° Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ° Π² Go, Π²ΡΠΈΡΠΊΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΡΡΠ΅ΡΠΈ ΡΡΡΠ°Π½ΠΈ (ΡΠ°Π±Π»ΠΎΠ½ΠΈ ΠΈ Ρ.Π½.) ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° GopherJS ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½ΠΈ Π² Π±ΡΠ°ΡΠ·ΡΡΠ°.
GopherJS Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅ΡΠ΅Π½ Π·Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ - ΡΠΎΠ²Π° Π΅ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ Go ΠΏΠ°ΠΊΠ΅Ρ. ΠΡΠΈΠ²Π°ΠΌΠ΅ Π΄Π° Π²Π·Π΅ΠΌΠ΅ΠΌ ΠΈ ΠΈΠΌΠ°ΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° GopherJS Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ:
Π’ΠΎΠ²Π° Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΌΠ°Π»ΡΠΊ Π·Π΄ΡΠ°Π²Π΅ΠΉ ΡΠ²ΡΡ...
...ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Go, ΡΡΠ°Π½Π΄Π°ΡΡΠ΅Π½ fmt ΠΏΠ°ΠΊΠ΅Ρ Π·Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΈ Binding Js Π·Π° Π΄ΠΎΡΡΠΈΠ³Π°Π½Π΅ Π΄ΠΎ API Π½Π° Π±ΡΠ°ΡΠ·ΡΡΠ°. Println Π² ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½ Π² ΠΊΠΎΠ½Π·ΠΎΠ»Π΅Π½ ΠΆΡΡΠ½Π°Π» ΠΈ Π±ΡΠ°ΡΠ·ΡΡΡΡ ΡΠ΅ ΠΈΠ·ΠΏΠΈΡΠ΅ βHello gophersβ! Π’ΠΎΠ»ΠΊΠΎΠ²Π° Π΅ ΠΏΡΠΎΡΡΠΎ: Π½ΠΈΠ΅ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°ΠΌΠ΅ GopherJS β ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ Π³ΠΎ Π² Π±ΡΠ°ΡΠ·ΡΡΠ° β Π²ΡΠΈΡΠΊΠΎ ΡΠ°Π±ΠΎΡΠΈ!
ΠΠ°ΠΊΠ²ΠΎ ΠΈΠΌΠ°Ρ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ°? ΠΠΎΠ΄Π²ΡΡΠ·ΠΈΠΈ
ΠΠΌΠ° ΠΎΠ±Π²ΡΡΠ·Π²Π°Π½ΠΈΡ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈ js ΡΠ°ΠΌΠΊΠΈ:
- JQuery;
- Angular.js;
- D3.js Π·Π° ΡΠ΅ΡΡΠ°Π½Π΅ ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ Π³ΠΎΠ»Π΅ΠΌΠΈ Π΄Π°Π½Π½ΠΈ;
- React.js;
- VueJS;
- ΠΈΠΌΠ° Π΄ΠΎΡΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Electron (ΡΠΎΠ΅ΡΡ Π²Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΠΈΡΠ΅ΠΌ Π½Π°ΡΡΠΎΠ»Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Electron);
- ΠΈ Π½Π°ΠΉ-ΡΠΌΠ΅ΡΠ½ΠΎΡΠΎ Π½Π΅ΡΠΎ Π΅ WebGL (ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡΠ°Π²ΠΈΠΌ ΠΈΠ·ΡΡΠ»ΠΎ Π³ΡΠ°ΡΠΈΡΠ½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ³ΡΠΈ Ρ 3D Π³ΡΠ°ΡΠΈΠΊΠ°, ΠΌΡΠ·ΠΈΠΊΠ° ΠΈ Π²ΡΠΈΡΠΊΠΈ Π΅ΠΊΡΡΡΠΈ);
- ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ ΠΎΠ±Π²ΡΡΠ·Π²Π°Π½ΠΈΡ ΠΊΡΠΌ Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈ javascript ΡΠ°ΠΌΠΊΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
Π Π°ΠΌΠΊΠ°
- ΠΠ΅ΡΠ΅ ΠΈΠΌΠ° ΡΠ΅Π± ΡΠ°ΠΌΠΊΠ°, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ Π·Π° GopherJS - Vecty. Π’ΠΎΠ²Π° Π΅ ΠΏΡΠ»Π½ΠΎΡΠ΅Π½Π΅Π½ Π°Π½Π°Π»ΠΎΠ³ Π½Π° React.js, Π½ΠΎ ΡΠ°ΠΌΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ Π² Go, ΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠ° Π½Π° GopherJS.
- ΠΠΌΠ° ΡΠ°Π½ΡΠΈ Π·Π° ΠΈΠ³ΡΠ° (ΠΈΠ·Π½Π΅Π½Π°Π΄Π°!). ΠΠ°ΠΌΠ΅ΡΠΈΡ
Π΄Π²Π°ΡΠ° Π½Π°ΠΉ-ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈ:
- Engo;
- ΠΠ±ΠΈΡΠ΅Π½.
Π©Π΅ Π²ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π·Π° ΡΠΎΠ²Π° ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ Π²Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΈΡΠ΅ΡΠ΅ Π² Go:
ΠΠ»ΠΈ ΡΠ°Π·ΠΈ ΠΎΠΏΡΠΈΡ (Π½Π΅ ΠΌΠΎΠΆΠ°Ρ
Π΄Π° Π½Π°ΠΌΠ΅ΡΡ 3D ΡΡΡΡΡ, Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π±ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°):
ΠΠ°ΠΊΠ²ΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΠΌ?
Π‘Π΅Π³Π° ΠΈΠ½Π΄ΡΡΡΡΠΈΡΡΠ° Π½Π° ΠΏΡΠ΅Π΄Π½ΠΈΡ ΠΊΡΠ°ΠΉ Π΅ Π² ΡΠ°ΠΊΠΎΠ²Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅, ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ Π΅Π·ΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° ΠΏΠ»Π°ΠΊΠ°Ρ Π° ΠΎΡ Javascript, ΡΠ΅ ΡΠ΅ Π²ΡΡΡΠ½Π°Ρ ΡΠ°ΠΌ. Π‘Π΅Π³Π° Π²ΡΠΈΡΠΊΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΎ Π² βWeb Assembliesβ. ΠΠ°ΠΊΠ²ΠΎ Π½ΠΈ ΡΡΡΠ±Π²Π°, Π·Π° Π΄Π° Π·Π°Π΅ΠΌΠ΅ΠΌ ΠΏΠΎΠ»Π°Π³Π°ΡΠΎΡΠΎ Π½ΠΈ ΡΠ΅ ΠΌΡΡΡΠΎ ΡΠ°ΠΌ ΠΊΠ°ΡΠΎ Π³ΠΎΡΠ΅ΡΠΈ?
Go ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎ ΠΏΡΠΈΠ΅ΠΌΠ°, ΡΠ΅ Π΅ Π΅Π·ΠΈΠΊ Π·Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½ΡΠΌΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΠΌΠ° Π½Π΅ΡΠΎ, Π½ΠΎ Π΅ Π½Π°ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° ΠΈΠ·ΠΎΡΡΠ°Π²Π΅Π½ΠΎ, Π½Π°ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° Π½Π΅ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎ.
Π ΡΠ΅Π³Π° Π΅ Π΄ΠΎΠ±ΡΡ ΡΠ°Π½Ρ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ UI Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π² Go, ΠΊΠΎΠΈΡΠΎ Π΄Π° ΡΠ°Π±ΠΎΡΡΡ Π½Π° GopherJS! ΠΠ°ΠΉ-Π½Π°ΠΊΡΠ°Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π° ΡΠ°ΠΌΠΊΠ°! Π’ΠΎΠ²Π° Π΅ ΠΌΠΎΠΌΠ΅Π½ΡΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΡΠ°ΠΌΠΊΠ° ΠΈ ΡΡ ΡΠ΅ Π±ΡΠ΄Π΅ Π΅Π΄Π½Π° ΠΎΡ ΠΏΡΡΠ²ΠΈΡΠ΅ ΠΈ ΡΠ΅ Π±ΡΠ΄Π΅ Π²ΡΠ·ΠΏΡΠΈΠ΅ΡΠ° ΡΠ°Π½Π½ΠΎ, ΠΈ ΡΠ΅ Π±ΡΠ΄Π΅ΡΠ΅ Π·Π²Π΅Π·Π΄Π° (Π°ΠΊΠΎ Π΅ Π΄ΠΎΠ±ΡΠ° ΡΠ°ΠΌΠΊΠ°).
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π°Π΄Π°ΠΏΡΠΈΡΠ°ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π²Π΅ΡΠ΅ ΡΠ° Π² Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Go ΠΊΡΠΌ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠ° Π½Π° Π±ΡΠ°ΡΠ·ΡΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Template engine). Π’Π΅ Π²Π΅ΡΠ΅ ΡΠ΅ ΡΠ°Π±ΠΎΡΡΡ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠ΄ΠΎΠ±Π½ΠΈ ΠΎΠ±Π²ΡΡΠ·Π²Π°Π½ΠΈΡ, ΡΠ°ΠΊΠ° ΡΠ΅ Π»Π΅ΡΠ½ΠΎ Π΄Π° ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΡΠ²Π°ΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π² Π±ΡΠ°ΡΠ·ΡΡΠ°. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ»ΡΠ³Π°, ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅Π½Π΄ΠΈΡΠ° Π΅Π΄Π½ΠΎ ΠΈ ΡΡΡΠΎ Π½Π΅ΡΠΎ Π½Π° ΡΡΡΠ²ΡΡΠ° ΠΈ Π½Π° ΠΏΡΠ΅Π΄Π½ΠΈΡ ΠΊΡΠ°ΠΉ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡ ΠΊΠΎΠ΄ β Π²ΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ Ρ Π°ΡΠ΅ΡΠ²Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° ΠΏΡΠ΅Π΄Π½ΠΈΡ ΠΊΡΠ°ΠΉ (ΡΠ°ΠΌΠΎ ΡΠ΅Π³Π° Π² Go).
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΠΈΠ³ΡΠ°! ΠΡΠΎΡΡΠΎ Π·Π° Π·Π°Π±Π°Π²Π»Π΅Π½ΠΈΠ΅β¦
Π’ΠΎΠ²Π° Π΅ Π²ΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΈΡΠΊΠ°Ρ Π΄Π° ΠΊΠ°ΠΆΠ°.
ΠΡΠΏΡΠΎΡΠΈ
ΠΡΠΏΡΠΎΡ (Π½Π°ΡΠΈΡΠ°Π½ ΠΏΠΎ-Π΄ΠΎΠ»Ρ Q): β ΠΠ° ΠΏΠΈΡΠ° Π½Π° Go ΠΈΠ»ΠΈ Js?
AG: β ΠΠΈΡΠ΅Ρ ΡΡΡΠΈΠ½ΠΈ, ΠΊΠ°Π½Π°Π»ΠΈ, ΡΡΡΡΠΊΡΡΡΠΈ, Π²Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ β Π²ΡΠΈΡΠΊΠΎ Π² Go... ΠΠ±ΠΎΠ½ΠΈΡΠ°Ρ ΡΠ΅ Π·Π° ΡΡΠ±ΠΈΡΠΈΠ΅, ΠΏΡΠ΅Π΄Π°Π²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ°ΠΌ.
AT: β ΠΠ½Π°ΡΠΈ ΠΏΠΈΡΠ° Ρ βΠ³ΠΎΠ»ΠΈβ Js?
AG: β ΠΠ΅, ΠΏΠΈΡΠ΅ΡΠ΅ ΠΊΠ°ΡΠΎ Π² Go ΠΈ ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π°ΡΠ΅ Ρ API Π½Π° Π±ΡΠ°ΡΠ·ΡΡΠ° (API Π½Π΅ Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½). ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ ΠΎΠ±Π²ΡΡΠ·Π²Π°Π½ΠΈΡ, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡΡΠ° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ Π΄ΠΎ ΠΊΠ°Π½Π°Π»Π° - Π½Π΅ Π΅ ΡΡΡΠ΄Π½ΠΎ.
AT: β ΠΠΌΠΈ ΠΌΠΎΠ±ΠΈΠ»Π½ΠΎΡΠΎ?
AG: β ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π²ΠΈΠ΄ΡΡ : ΠΈΠΌΠ° ΠΎΠ±Π²ΡΡΠ·Π²Π°Π½ΠΈΡ Π·Π° ΠΊΠΎΡΠ΄ΠΎΠ²Π° ΠΊΠΎΡΠ΅ΠΊΡΠΈΡ, ΠΊΠΎΡΡΠΎ Js ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°. Π React Native - Π½Π΅ Π·Π½Π°ΠΌ; ΠΌΠΎΠΆΠ΅ Π±ΠΈ ΠΈΠΌΠ°, ΠΌΠΎΠΆΠ΅ Π±ΠΈ Π½Π΅ (Π½Π΅ ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°Ρ ΠΎΡΠΎΠ±Π΅Π½ΠΎ). ΠΠ½Π΄ΠΆΠΈΠ½ΡΡ Π½Π° ΠΈΠ³ΡΠ°ΡΠ° N-go ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΈ Π΄Π²Π΅ΡΠ΅ ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ - ΠΊΠ°ΠΊΡΠΎ iOS, ΡΠ°ΠΊΠ° ΠΈ Android.
AT: β ΠΡΠΏΡΠΎΡ ΠΎΡΠ½ΠΎΡΠ½ΠΎ Web Assembly. ΠΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΌΡΡΡΠΎ ΡΠ΅ Π·Π°Π΅ΠΌΠ°, Π²ΡΠΏΡΠ΅ΠΊΠΈ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΡΠ° ΠΈ βΡΠΈΠΏΠ²Π°Π½Π΅ΡΠΎβ... ΠΡΠΌΠ° Π»ΠΈ Π΄Π° ΡΠ±ΠΈΠ΅ΠΌ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ ΡΠ²Π΅ΡΠ° ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΠΎΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅?
AG: β Web Assembly Π΅ Π΄Π²ΠΎΠΈΡΠ΅Π½ ΡΠΎΡΠΌΠ°Ρ, Π° Π΄Π²ΠΎΠΈΡΠ½ΠΈΡΡ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π²ΡΠ² ΡΠΈΠ½Π°Π»Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ ΡΠ΅ΠΊΡΡ... ΠΠΈΠ΅ ΡΡΠ΅ ΠΏΡΠΈΠ²Π»Π΅ΡΠ΅Π½ΠΈ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, Π½ΠΎ ΡΠΎΠ²Π° Π΅ ΡΡΡΠΎΡΠΎ ΠΊΠ°ΡΠΎ Π΄Π° ΠΈΠ·ΡΠ΅Π³Π»ΠΈΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π½Π° Javascript, ΠΊΠΎΠ³Π°ΡΠΎ Ρ Π½ΡΠΌΠ°, ΡΠ°ΠΊΠ° ΡΠ΅ Π½ΠΈΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΠΌΠ°Π»ΠΊΠΎ Lodash. ΠΠ΅ Π·Π½Π°ΠΌ ΠΊΠΎΠ»ΠΊΠΎ Π²Π·Π΅ΠΌΠ° Lodash.
AT: β ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅...
AG: β Π βΡΠΈΡΡβ Javascript?
AT: - Π΄Π° ΠΠΈΠ΅ Π³ΠΎ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°ΠΌΠ΅, ΠΏΡΠ΅Π΄ΠΈ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠΈΠΌ...
AG: β ΠΠΎ ΡΠΎΠ²Π° Π΅ ΡΠ΅ΠΊΡΡ... ΠΠ°ΡΠΎ ΡΡΠ»ΠΎ Π΅Π΄ΠΈΠ½ ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΌΠ½ΠΎΠ³ΠΎ, Π½ΠΎ ΡΠΎΠ²Π° Π΅ Π²ΡΠΈΡΠΊΠΎ (ΠΈΠΌΠ°ΡΠ΅ ΡΡΠ»ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅). Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΠΈΡΠ΅ΡΠ΅ ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π° Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈ Π΄Π²ΠΎΠΈΡΠ½ΠΈΡ Π²ΠΈ ΡΠ°ΠΉΠ» Ρ 1%. ΠΠ°ΡΠ΅Π³Π° Π½Π΅ Π²ΠΈΠΆΠ΄Π°ΠΌ ΡΠΎΠ²Π° Π΄Π° ΡΠ±ΠΈΠ²Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° Web Assembly ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ ΠΎΡ Javascript ΠΏΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½Π°ΡΠ° ΠΏΡΠΈΡΠΈΠ½Π° β Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°.
AT: β Π’ΠΎΠ²Π° Π²ΡΠ΅ ΠΎΡΠ΅ Π΅ ΡΠΏΠΎΡΠ΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ... ΠΡΠ΅ ΠΎΡΠ΅ Π½ΡΠΌΠ° ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠ½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° βVasmaβ (Web Assembly), Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΡΠ΅Π½ΠΈ Π΅Π΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎ. ΠΠΎΠ½ΡΠ΅ΠΏΡΡΠ°Π»Π½ΠΎ, Π΄Π°: Π²ΡΠΈΡΠΊΠΈ ΡΠ°Π·Π±ΠΈΡΠ°ΠΌΠ΅, ΡΠ΅ Π±ΠΈΠ½Π°ΡΠ½ΠΈΡΡ ΠΊΠΎΠ΄ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎ-Π±ΡΡΠ·, Π½ΠΎ ΡΠ΅Π³Π°ΡΠ½ΠΎΡΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΡΠΈΡ V8 Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ.
AG: - ΠΠ°.
AT: β ΠΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΡΠ° ΡΠ°ΠΌ ΡΠ°Π±ΠΎΡΠΈ Π½Π°ΠΈΡΡΠΈΠ½Π° ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΡΠΈΠ½ΠΎ ΠΈ Π½Π΅ Π΅ ΡΠ°ΠΊΡ, ΡΠ΅ ΡΠ΅ ΠΈΠΌΠ° Π³ΠΎΠ»ΡΠΌΠΎ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²ΠΎ.
AG: β Web Assembly ΡΡΡΠΎ ΡΠ΅ ΠΏΡΠ°Π²ΠΈ ΠΎΡ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΌΠΎΠΌΡΠ΅ΡΠ°.
AT: β Π‘ΡΡΡΠ²Π° ΠΌΠΈ ΡΠ΅, ΡΠ΅ Π²ΡΠ΅ ΠΎΡΠ΅ Π΅ ΡΡΡΠ΄Π½ΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΡΠ΅Π½ΠΈ Web Assembly. Π Π°Π·Π³ΠΎΠ²ΠΎΡΠΈ ΡΠ΅ Π²ΠΎΠ΄ΡΡ ΠΎΡ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ΄ΠΈΠ½ΠΈ, Π½ΠΎ ΠΌΠ°Π»ΠΊΠΎ ΡΠ° ΡΠ΅Π°Π»Π½ΠΈΡΠ΅ ΠΏΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΡΠ΅ΡΡΡ.
AG: - ΠΠΎΠΆΠ΅ Π±ΠΈ. Π©Π΅ Π²ΠΈΠ΄ΠΈΠΌ.
AT: β ΠΡΠΌΠ°ΠΌΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π°... ΠΠΎΠΆΠ΅ Π±ΠΈ ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΡΡΠ°Π²ΠΈΠΌ ΡΠ΅Π·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π½Π° ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π°? ΠΠ°ΡΠΎ Π΄Π° Ρ ΠΎΠ΄Ρ ΡΠ°ΠΌ?
AG: β Π’ΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΠΌΠ΅ ΠΏΠ΅ΡΡΠΎΠ½Π°Π» ΠΎΡ ΡΠ°Π±ΠΎΡΠ½ΠΈΡΠΈ Π½Π° ΠΏΡΡΠ²Π° Π»ΠΈΠ½ΠΈΡ.
ΠΠ°Π»ΠΊΠΎ ΡΠ΅ΠΊΠ»Π°ΠΌΠΈ π
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠΈΠΌ Π²ΠΈ, ΡΠ΅ ΠΎΡΡΠ°Π½Π°Ρ
ΡΠ΅ Ρ Π½Π°Ρ. Π₯Π°ΡΠ΅ΡΠ²Π°ΡΠ΅ Π»ΠΈ Π½Π°ΡΠΈΡΠ΅ ΡΡΠ°ΡΠΈΠΈ? ΠΡΠΊΠ°ΡΠ΅ Π»ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΎΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅? ΠΠΎΠ΄ΠΊΡΠ΅ΠΏΠ΅ΡΠ΅ Π½ΠΈ, ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΏΠΎΡΡΡΠΊΠ° ΠΈΠ»ΠΈ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ°ΡΠ΅ Π½Π° ΠΏΡΠΈΡΡΠ΅Π»ΠΈ,
Dell R730xd 2 ΠΏΡΡΠΈ ΠΏΠΎ-Π΅Π²ΡΠΈΠ½ Π² ΡΠ΅Π½ΡΡΡΠ° Π·Π° Π΄Π°Π½Π½ΠΈ Equinix Tier IV Π² ΠΠΌΡΡΠ΅ΡΠ΄Π°ΠΌ? Π‘Π°ΠΌΠΎ ΡΡΠΊ
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com