Design: рдХреНрдпрд╛ рдХреЛрдИ JS -> WASM рдХрдВрдкрд╛рдЗрд▓рд░ рд╣реЛрдЧрд╛?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 24 рдЬреВрди 2015  ┬╖  93рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: WebAssembly/design

рдбрд┐рдЬрд╝рд╛рдЗрди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреА рдЫрд╛рдирдмреАрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдПрдХ рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ рдЬреЛ WASM -> JS рдХреЛ рдкрд╛рд░ рдХрд░ рдЬрд╛рдПрдЧрд╛ред рдореИрдВ рдПрдХ рд╕реА ++ -> рдбрдмреНрд▓реНрдпреВрдПрдПрд╕рдПрдо рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рднреА рдвреВрдВрдврдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореБрдЭреЗ JS -> WASM рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рдХреЛрдИ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдорд┐рд▓рд╛ред

рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдзрд╛рд░рд╛рдкреНрд░рд╡рд╛рд╣ рд╣реИрдВ, рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдПрдХ JS -> WASM рдХрдВрдкрд╛рдЗрд▓рд░ рдЖрджрд░реНрд╢ рд╣реЛрдЧрд╛ред рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░ рдЕрдкрдиреА рд╡реЗрдмрд╕рд╛рдЗрдЯреЛрдВ рдХреЛ C++ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦрдирд╛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдорд╡реАрдкреА рдХрд╛ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ, рди рд╣реА рдПрдорд╡реАрдкреА рдХреЗ рдмрд╛рдж рдХреЗ рдЦрдВрдб рдЬреЗрдПрд╕ -> рдбрдмреНрд▓реНрдпреВрдПрдПрд╕рдПрдо рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рдХреЛрдИ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВрдиреЗ рдЕрднреА рдПрдХ рдЦрд┐рд▓реМрдирд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реЛ рд╕рдХрддреА рд╣реИ: https://github.com/evanw/thinscript ред рдпрд╣ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ-рд╢реИрд▓реА рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ WebAssembly рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдореБрдЭреЗ рдЗрд╕рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдХреЗрд╕ рд╕реНрдЯрдбреА рд╣реЛ рд╕рдХрддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рд╕реБрдЦрдж рдЖрд╢реНрдЪрд░реНрдп рд╣реБрдЖ рдХрд┐ WebAssembly рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди рдерд╛ред рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рд╕рдм рд▓реЛрдЧ!

рд╕рднреА 93 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЕрднреА рднреА рдореВрд▓ JavaScript VM рд╕рд╛рде-рд╕рд╛рде wasm рд╣реЛрдЧрд╛ред JS рдХреЛ wasm рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдПрдХ рд╕рдВрдкреВрд░реНрдг рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ vm рднреА рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдкрд░рд┐рдгрд╛рдореА рдХреЛрдб рдореВрд▓ рд░реВрдк рд╕реЗ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП JS VM рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдФрд░ рдзреАрдорд╛ рд╣реЛрдЧрд╛ред

wasm рдХреЛрдб рд╕реЗ GC рддрдХ рдкрд╣реБрдВрдЪ рдЬреЛрдбрд╝рдиреЗ рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдп рдкреЛрд╕реНрдЯ MVP рд╣реИ рддрд╛рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЛ wasm рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

JS тЖТ wasm рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ рддрднреА рд╕рдордЭ рдореЗрдВ рдЖрдПрдЧрд╛ рдЬрдм wasm GC рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ JIT рд╕рдВрдХрд▓рди рднреА рд╣реИ, рдЬреЛ рдЕрднреА рднреА рдХрд╛рдлреА рджреВрд░ рд╣реИред рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ JS рдЗрдВрдЬрди рдХреЛ wasm рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧрд╛! рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдФрд░ @BrendanEich рдиреЗ рдореБрдЭ рдкрд░ рд╣реЙрд░реНрд╕_рдЬреЗрдПрд╕ рджреНрд╡рд╛рд░рд╛ рдХрдмреНрдЬрд╛ рдХрд░рдиреЗ рдХрд╛ рдЖрд░реЛрдк рд▓рдЧрд╛рдпрд╛ред

рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, wasm рдХрд╛ рд▓рдХреНрд╖реНрдп _replace_ JavaScript рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдЗрд╕реЗ рдкреВрд░рдХ рдХрд░рдирд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП JS тЖТ wasm рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЗрд╕ рд╕рдордп рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд▓рдХреНрд╖реНрдп рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрд┐рди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд╣рдо рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╡реЗ рдЗрд╕реЗ рд╕рдВрднрд╡ рдмрдирд╛ рджреЗрдВрдЧреАред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ред рдЖрдкрдХреЛ рдХреБрдЫ рдЖрдХрд╛рд░ рдореЗрдВ рдХрдореА рдорд┐рд▓ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рд╢реБрджреНрдз рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ JS рдЗрдВрдЬрди рдХреЛ wasm рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

@jfbastien рдореИрдВрдиреЗ рдЖрдкрдХреЛ 2 рд╕реЗрдХрдВрдб рд╕реЗ рд╣рд░рд╛рдпрд╛;)

рд▓реЗрдХрд┐рди рдЖрдкрдХрд╛ рдЬрд╡рд╛рдм рдмреЗрд╣рддрд░ рд╣реИред рдореИрдВ wasm рдореЗрдВ GC рдФрд░ JIT рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕рд╛рд╣рд┐рдд рд╣реВрдВред рдореБрдЭреЗ рдЕрдкрдиреА рднрд╛рд╖рд╛рдПрдБ рдмрдирд╛рдирд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╡реЗрдм рдкрд░ рдЪрд▓рд╛рдирд╛ рдкрд╕рдВрдж рд╣реИред

рдФрд░ asm.js рдпрд╛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ/ES7 рдЬреИрд╕реЗ рд╡реЗрд░рд┐рдПрдВрдЯ рдХреЛ рд╕рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдЗрди
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдлреНрд▓реЗрд╡рд░ рдХреБрдЫ рд╕реНрддрд░ рдХреА рдЧрд╛рд░рдВрдЯреА рдХрд╛ рд╡рд╛рджрд╛ рдХрд░рддреЗ рд╣реИрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреЗрдЖрдИрдЯреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрдо рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдЬреАрд╕реА рдЕрднреА рднреА рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИ
рдЗрди рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдПрдХ {рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рд╣реБрдЖ рдлреНрд▓реЗрд╡рд░ JS} рд╣реЛрдЧрд╛ -> WASM рдореЗрдХ
рдпрд╣ рдФрд░ рдЕрдзрд┐рдХ рд╕рдВрднрд╡ рд╣реИ?

рдбрдмреНрд▓реНрдпреВ: http://bguiz.com

24 рдЬреВрди 2015 рдХреЛ 09:44 рдмрдЬреЗ, рдЯрд┐рдо рдХреИрд╕рд╡реЗрд▓ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

@jfbastien https://github.com/jfbastien рдЖрдкрдиреЗ рдореБрдЭреЗ 2 рд╕реЗрдХрдВрдб рд╕реЗ рд╣рд░рд╛ рджрд┐рдпрд╛:P

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/WebAssembly/design/issues/219#issuecomment -114675456ред

рд╣рд╛рдБ, рдПрдХ asm.js -> wasm рдЕрдиреБрд╡рд╛рджрдХ рдПрдХ рдЙрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИ, рдФрд░ рд▓реНрдпреВрдХ рдиреЗ рдкрд╣рд▓реЗ рд╣реА рдХрд┐рдпрд╛ рдерд╛
рдПрдХ рдХрдВрдкреНрд░реЗрд╕рд░ рдкрд░ рдХрд╛рдо рдХрд░реЗрдВ рдЬреЛ рдПрдХ рдЕрдЪреНрдЫреЗ рд╢реБрд░реБрдЖрддреА рдмрд┐рдВрджреБ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХреЗред

рдмреБрдзрд╡рд╛рд░, 24 рдЬреВрди, 2015 рдкреВрд░реНрд╡рд╛рд╣реНрди 1:59 рдмрдЬреЗ, рдмреНрд░реЗрдВрдбрди рдЧреНрд░реЗрдЯреНрдЬрд╝ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдФрд░ asm.js рдпрд╛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ/ES7 рдЬреИрд╕реЗ рд╡реЗрд░рд┐рдПрдВрдЯ рдХреЛ рд╕рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдЗрди
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдлреНрд▓реЗрд╡рд░ рдХреБрдЫ рд╕реНрддрд░ рдХреА рдЧрд╛рд░рдВрдЯреА рдХрд╛ рд╡рд╛рджрд╛ рдХрд░рддреЗ рд╣реИрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреЗрдЖрдИрдЯреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрдо рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдЬреАрд╕реА рдЕрднреА рднреА рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИ
рдЗрди рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдПрдХ {рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рд╣реБрдЖ рдлреНрд▓реЗрд╡рд░ JS} рд╣реЛрдЧрд╛ -> WASM рдореЗрдХ
рдпрд╣ рдФрд░ рдЕрдзрд┐рдХ рд╕рдВрднрд╡ рд╣реИ?

рдбрдмреНрд▓реНрдпреВ: http://bguiz.com

24 рдЬреВрди 2015 рдХреЛ 09:44 рдмрдЬреЗ, рдЯрд┐рдо рдХреИрд╕рд╡реЗрд▓ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

@jfbastien https://github.com/jfbastien рдЖрдкрдиреЗ рдореБрдЭреЗ 2 рд╕реЗрдХрдВрдб рд╕реЗ рд╣рд░рд╛ рджрд┐рдпрд╛:P

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
< https://github.com/WebAssembly/design/issues/219#issuecomment -114675456
.

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/WebAssembly/design/issues/219#issuecomment -114677789ред

рд╣рдордиреЗ рдЗрд╕ рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреАрдо рдХреЗ рд╕рд╛рде рдмрд╛рдд рдХреА рд╣реИ рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рд░реБрдЪрд┐ рджрд┐рдЦрд╛рдИ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЬреЗрдПрд╕ рдореЗрдВ рдЯрд╛рдЗрдк рдХреА рдЧрдИ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдкрд░ рдкреНрд░рдЧрддрд┐ рд╣реБрдИ рд╣реИред

@bguiz : JS рдЗрдВрдЬрди wasm рдЗрдВрдЬрди рд╣реИ, рдФрд░ рдпрд╣ рд╡рд┐рдХрд╕рд┐рдд JS рдорд╛рдирдХ рднрд╛рд╖рд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдЧрд╛ред рд╡рд╣рд╛рдБ рдХреЛрдИ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рд╣реИ (рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдпрд╣ рджреВрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдирд╣реАрдВ рдЬрд┐рд╕реЗ рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ)ред рдУрдЯреАрдУрдПрдЪ, рдЬреИрд╕рд╛ рдХрд┐ рдЕрдиреНрдп рдХрд╣рддреЗ рд╣реИрдВ, рдЬреЗрдПрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдХреЗ рд▓рдХреНрд╖реНрдп рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреАрд╕реА, рдЬреЗрдЖрдИрдЯреА рд╕рдорд░реНрдерди рдФрд░ рдЕрдиреНрдп рдЧрддрд┐рд╢реАрд▓ рднрд╛рд╖рд╛ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП wasm рдХреЛ рд╕рдордп рдЪрд╛рд╣рд┐рдПред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЬрдм рдпрд╣ рдЗрди рдЪреАрдЬреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ JS/wasm рдЗрдВрдЬрди рдЕрдкрдиреЗ JS рд╕рд┐рдВрдЯреИрдХреНрд╕ рдФрд░ рдмрд┐рд▓реНрдЯ-рдЗрдиреНрд╕ рдХреЛ JS-in-wasm VMs рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗред рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ!

/рд╣реЛрдирд╛

рдПрдХ asm.js-to-WebAssembly рдЕрдиреБрд╡рд╛рджрдХ рднреА рдХреБрдЫ рдРрд╕рд╛ рд╣реЛрдЧрд╛ рдЬрд┐рд╕реЗ рд╣рдо Emscripten рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред

рдирд┐рдпрдорд┐рдд рдЬреЗрдПрд╕ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рджреВрд╕рд░реЛрдВ рдиреЗ рдЙрдкрд░реЛрдХреНрдд рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджрд┐рдпрд╛ рд╣реИред

JS рдХрд╛ рдкреВрд░рд╛ рдмрд┐рдВрджреБ рдХреЛрдб рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдФрд░ рдЕрджреНрднреБрдд рдЪреАрдЬреЗрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ: dhteumeuleu рдпрд╛ codepen.io/ge1doot, рд▓реЗрдХрд┐рди рдЖрдк рд╕реНрд░реЛрдд рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╣реИрдХ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред

"wasm" Google, Apple a co рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЧреЗрдо рдФрд░ рдЕрдиреНрдп рдРрдкреНрд╕ рдмреЗрдЪрдиреЗ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рддрд░реАрдХрд╛ рд╣реИред рдХреЗрд╡рд▓ "рд╡рд┐рдХрд╛рд╕" рдпрд╣ рд╣реИ рдХрд┐ рд╕реАрдзреЗ рдмрдбрд╝реЗ рднрд╛рдИ рд╕рд░реНрд╡рд░ рд╕реЗ "рдХреЛрдИ рдЗрдВрд╕реНрдЯреЙрд▓ рдирд╣реАрдВ" рдХреЗ рд╕рд╛рде рдЖрдкрдХреЛ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ ... рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рд╡реЗ рдЕрднреА рддрдХ рдПрдХ-рджреВрд╕рд░реЗ рдХреЛ рдЦрд╛рдиреЗ рд╕реЗ рдбрд░рддреЗ рдирд╣реАрдВ рд╣реИрдВ ...

рдИрд╕реАрдПрдордПрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ WebAssembly рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдпрд╛ рдХреЛрдб рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рдпрд╣ рд╕рдВрднрд╡ рд╣реИред рдпрд╣ WebAssembly рдЯреАрдо рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреА рддрд░рд╣ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рдкреНрд░рдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рд╛рди рд╡рд┐рдЪрд╛рд░ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдЕрднреА рдПрдХ рдЦрд┐рд▓реМрдирд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реЛ рд╕рдХрддреА рд╣реИ: https://github.com/evanw/thinscript ред рдпрд╣ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ-рд╢реИрд▓реА рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ WebAssembly рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдореБрдЭреЗ рдЗрд╕рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдХреЗрд╕ рд╕реНрдЯрдбреА рд╣реЛ рд╕рдХрддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рд╕реБрдЦрдж рдЖрд╢реНрдЪрд░реНрдп рд╣реБрдЖ рдХрд┐ WebAssembly рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди рдерд╛ред рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рд╕рдм рд▓реЛрдЧ!

рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореИрдВ рд▓реЛрдЧреЛрдВ рдХреЛ рд╡рд╛рд╕рдо рдХреЗ рдКрдкрд░ рдмрд╣реБрдд рдкрддрд▓реЗ рд░реИрдкрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╛рд╡рдзрд╛рди рдХрд░реВрдВрдЧрд╛ред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдерд┐рдирд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ while рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рд╣реИ рдЬрд┐рд╕реЗ рдХрдо рдХрд░рдХреЗ loop { if (!condition) break; } , рдЬреЛ рдХрд┐ рдХрдИ wasm рдЗрдВрдЬрдиреЛрдВ рдкрд░ if (condition) loop { ...; br_if condition } рд╕реЗ рдХрдо рдХреБрд╢рд▓ рд╣реЛрдЧрд╛ред

рдореЗрд░реЗ рд▓рд┐рдП, рдЬреЛ рдЪреАрдЬ рд╡рд╛рд╕рдо рдХреЛ рд╕рд┐рд░реНрдл рдПрдХ рдмрд╛рд░ рдЧрд░реНрдо рдХрд┐рдП рдЧрдП рдЬреЗрдПрд╕ рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдмрдирд╛рддреА рд╣реИ, рд╡рд╣ рдПрдХ рдЕрд▓рдЧ рджрд░реНрд╢рди рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ: рдХреНрдпреЛрдВрдХрд┐ рд╡рд╛рд╕реНрдо рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рд▓рдХреНрд╖реНрдп рд╣реИ, рдХрдВрдкрд╛рдЗрд▓рд░ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдХреЛрдб рднреЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдиреБрдХреВрд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд╡реАрдПрдо рдХреЛ рд╕рд░рд▓ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдФрд░ рддреЗрдЬред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рд╡рд╛рд╕рдо рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдкрддрд▓реЗ рд░реИрдкрд░ рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдЬреЛрдЦрд┐рдо рд╣реИ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЕрдВрддрддрдГ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛрдирд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдХрд┐рдП рдЬрд╛ рд╕рдХреЗрдВ рдЬреЛ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред

рд╣рд╛рдБ рдореИрдВ рд╕рд╣рдордд рд╣реВрдБред WebAssembly рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореБрдЭреЗ рдЬреЛ рдЪреАрдЬреЗрдВ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдкрд╕рдВрдж рд╣реИрдВ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдЗрд╕рдХреА рд╕рд╛рджрдЧреА рд╣реИред рднрд╛рд╖рд╛ рдкреВрд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдореИрдВ рдХрдВрдкрд╛рдЗрд▓рд░ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрдирд▓рд╛рдЗрдирд┐рдВрдЧ рдмрдбрд╝реА рдЬреАрдд рдореЗрдВ рд╕реЗ рдПрдХ рд╣реЛрдЧреА, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдФрд░ рдореБрдЭреЗ рдЙрдореНрдореАрдж рдирд╣реАрдВ рд╣реИ рдХрд┐ WebAssembly рдореЗрд░реЗ рд▓рд┐рдП рдРрд╕рд╛ рдХрд░реЗрдЧрд╛ред рдореИрдВ рдорд╢реАрди рдХреЛрдб рд▓рдХреНрд╖реНрдп рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХреА рднреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рджреЛрдиреЛрдВ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдЕрдиреБрдХреВрд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред

рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ! рдореБрдЭреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдЧреА рдХрд┐ рдпрд╣ рдХрд╣рд╛рдБ рдЬрд╛рддрд╛ рд╣реИред

рдореИрдВ рдХрд▓реНрдкрдирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ JS-> WASM рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЖрдХрд░реНрд╖рдХ рд╣реИред рдореЗрд░реЗ рдорди рдореЗрдВ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдЪреНрдЪ рд╕реНрддрд░реАрдп рдЕрд╡рд▓реЛрдХрди рдХреЗ рд░реВрдк рдореЗрдВ ...

JavaScript -> WebAssembly -> Tracing Interpreter -> LLVM IR -> Machine Code

рдЗрд╕ рдЕрд╡рдзрд╛рд░рдгрд╛ рдореЗрдВ, рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рдХреЗ рд▓рд┐рдП WASM рд╕реЗ

рдмрд╕ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░, рдХреГрдкрдпрд╛ рдмреЗрдЭрд┐рдЭрдХ рдЗрд╕реЗ рд╣рдЯрд╛ рджреЗрдВ рдпрджрд┐ рдпрд╣ рдирдХрд▓реА рд╣реИ!

JS рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдореЗрдВ рдХреНрд░реЙрд╕ рдкрд░реНрдпрд╛рд╡рд░рдг рдЕрдиреБрдХреВрд▓рддрд╛ рдПрдХ рдЧрдВрднреАрд░ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдмреИрдмреЗрд▓ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ ES рдХреЗ рдХреБрдЫ рдФрд░ рд╕реНрд╡реАрдХреГрдд рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдХреЗ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╕рднреА рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╕рдлрд▓ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣рд╛рдВ рдЕрднреА рднреА рдПрдХ рдореБрджреНрджрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ ES 2016 рдХреЛрдб рдХреЛ ES5 рддрдХ рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХрд╛ рдХреЛрдб ES 2016 рд╕рдорд░реНрдерди рд╡рд╛рд▓реЗ (рдЖрдВрд╢рд┐рдХ рдпрд╛ рдкреВрд░реНрдг) рд╡рд╛рддрд╛рд╡рд░рдг рдкрд░ рдЪрд▓рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЕрдкрдиреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ ES 2016 рд╕рдорд░реНрдерди рд╣реЛрдиреЗ рдХреЗ рд▓рд╛рднреЛрдВ рдХреЛ рдпрд╛рдж рдХрд░ рд░рд╣реЗ рд╣реЛрдВрдЧреЗред .

рдЕрдЧрд░ рд╣рд░ рдХреЛрдИ рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ ES5 рддрдХ рдЯреНрд░рд╛рдВрд╕рдкрд╛рдЗрд▓ рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ ES 2016 рд╕рдорд░реНрдерди рд╣реЛрдиреЗ рдХрд╛ рдХреНрдпрд╛ рд▓рд╛рдн рд╣реИ?

"рдмреЗрдмреЗрд▓-рдкреНрд░реАрд╕реЗрдЯ-рдПрдирд╡реА" рдирд╛рдордХ рдПрдХ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЕрдкрдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рд╡реЗрд╢реЛрдВ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рд▓рдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреА рд╣реИред рдЗрд╕рдХреЗ рдкреАрдЫреЗ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ (1) рдЖрдк рдЗрд╕реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдпрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ "рдирд╡реАрдирддрдо X рд╕рдВрд╕реНрдХрд░рдг" рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреЗ рд╣реИрдВ, (2) рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рдмрд╕реЗ рдХрдо рд╕рд╛рдорд╛рдиреНрдп рднрд╛рдЬрдХ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ (3) рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рдЯреНрд░рд╛рдВрд╕рдкреНрд▓реЗрд╢рди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рджреБрдЦ рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдПрдХ рдкреНрд░рдореБрдЦ рд╡рд┐рдХреНрд░реЗрддрд╛ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рди рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реАрдВ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирдиреЗ рдХрд╛ рдЬреЛрдЦрд┐рдо рд╣реИ рдЬреЛ Microsoft рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдХреЗ рд╕рд╛рде рдкреИрджрд╛ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдкреВрд░рд╛ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреБрдЫ рд╡рд┐рдХреНрд░реЗрддрд╛рдУрдВ рдХреЗ рд╣рд╛рдереЛрдВ рдореЗрдВ рд╣реИ, рдЬреЛ рддрдп рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реИ рдФрд░ рдХрдм рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реИред рдпрд╣ рди рддреЛ рдореБрдлрд╝реНрдд рд╣реИ рдФрд░ рди рд╣реА рдЦреБрд▓рд╛ред

рдПрдХрдорд╛рддреНрд░ рд╕рдорд╛рдзрд╛рди рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рд╕рдВрдХрд▓рди рд▓рдХреНрд╖реНрдп рд╣реИ рдЬреЛ рдкреНрд░рджрд░реНрд╢рдирдХрд╛рд░реА рд╣реИ рдФрд░ рдЬреЗрдПрд╕ рдЗрдВрдЬрди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд░рдЦрд░рдЦрд╛рд╡ (рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХреЛрдИ рдирд╣реАрдВ) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЬрдм рдкрд░рд┐рд╡реЗрд╢ (рдмреНрд░рд╛рдЙрдЬрд╝рд░, Node.js, рдЖрджрд┐) рдРрд╕реЗ рд▓рдХреНрд╖реНрдп рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдирдИ ES рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХрдВрдкрд╛рдЗрд▓рд░ рдХреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рди рдХрд┐ рдЗрдВрдЬрди рд╡рд┐рдХреНрд░реЗрддрд╛рдУрдВ рдХреАред

JS -> WASM рдЬрдм рдЧреНрд░рд╛рд╣рдХ рд╕рд░реНрд╡рд░ рдкрд░ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдРрдкреНрд╕ рдХреЗ рдСрди-рдкреНрд░рд┐рдорд╛рдЗрд╕реЗрд╕ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рддреЛ рдХреЛрдб рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рджреНрд╡рд╛рд░рд╛ рдмреМрджреНрдзрд┐рдХ рд╕рдВрдкрджрд╛ рдХреА рд░рдХреНрд╖рд╛ рдХрд░рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ред рдпрд╣ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░рдирд╛ рдХрдард┐рди рд╣реИ рд▓реЗрдХрд┐рди рд╕рдЪ рд╣реИ, рдЬрд░реНрдордиреА рдореЗрдВ рдмрд╣реБрдд рдХрдо рдпрд╛ рдмрд┐рдирд╛ рдЗрдВрдЯрд░рдиреЗрдЯ рдХрдиреЗрдХреНрд╢рди рд╡рд╛рд▓реЗ рдХрдИ рдЫреЛрдЯреЗ рд╕рдВрд╕реНрдерд╛рди рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдСрди-рдкреНрд░рд┐рдорд╛рдЗрд╕реЗрд╕ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдкрдирд╛ рдкреВрд░рд╛ рдХреЛрдб рдЙрдиреНрд╣реЗрдВ рдкреНрд▓реЗрдирдЯреЗрдХреНрд╕реНрдЯ рдореЗрдВ рджреЗрдирд╛ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХрдВрдкрдирд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд░рд╛рд╡рдирд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

@ рд╕рд┐рдорд░рди-рдмреА рд╡рд╛рд╕рдо рдХреЗ рдкрд╛рд╕ рдПрдХ рдкрд░рд┐рдЪрд┐рдд рдкрд╛рда рдкреНрд░рд╛рд░реВрдк рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдбрд┐рдЬрд╛рдЗрди рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕рдореЗрдВ рддреНрд╡рд░рд┐рдд рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрд░рдЪрд┐рдд рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рдбрд┐рдЬрд╛рдЗрди рд╣реИ, рдФрд░ рд╕реНрдЯреИрдХ рдСрд░реНрдбрд░ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдПрдХрд▓ рдЙрдкрдпреЛрдЧ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИ рддрд╛рдХрд┐ рдкрдардиреАрдп рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдпрд╣ рдПрдХ 'рдХреЛрдб рдЕрд╕реНрдкрд╖реНрдЯрддрд╛' рд▓рдХреНрд╖реНрдп рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЗрд╕рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ 'рдХреЛрдб рдЕрд╕реНрдкрд╖реНрдЯрддрд╛' рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рджрдХреНрд╖рддрд╛ рдореЗрдВ рдХрдореА рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдХрдореА рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕рдХреА рд▓рд╛рдЧрдд рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИред

рд╣рд╛рдп рд╕рдм, рдореИрдВрдиреЗ рдЕрднреА-рдЕрднреА WebAssembly рдХреА рдЦреЛрдЬ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди JS -> wasm рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реБрдП, рдореИрдВрдиреЗ Angular2 рдХреЗ рдЕрд╣реЗрдб-рдСрдл-рдЯрд╛рдЗрдо рд╕рдВрдХрд▓рди рдХреА рддрд░рд╣ рдХреБрдЫ рдХрд▓реНрдкрдирд╛ рдХреА, рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЕрдзрд┐рдХ рдЕрдиреБрдХреВрд▓рд┐рдд (рдореИрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрдЬрд╛рдп рдорд╢реАрдирдХреЛрдб рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ) ... рдХреНрдпрд╛ рдпрд╣ рдХрднреА рд╕рдВрднрд╡ рд╣реЛ? рдХреНрдпрд╛ рдпрд╣ рдЗрд╕ рд▓рд╛рдпрдХ рд╣реИ?

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ
рдореИрдВ рдпрд╣ рднреА рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ, рдХреНрдпрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдзреНрд╡рдЬ рднреЗрдЬрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реЛрдЧреА рдХрд┐ рдпрд╣ wasm рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╣рдо рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрдЬрд╛рдп рдкреНрд░реАрдХрдВрдкрд┐рд▓реНрдб рдРрдк рдХреА рд╕реЗрд╡рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рд░рд┐рдЪрд░реНрдб

@ рд░рд┐рдЪрд░реНрдб 87 рдЖрдк рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡рд┐рд╢реЗрд╖ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдФрд░ рдХреЙрд▓рд┐рдВрдЧ рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдордВрдЪ рд╕реНрд╡рддрдВрддреНрд░ рдирд┐рд░реНрджреЗрд╢ рд╕реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ webassembly рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВред рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд╣ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдЖрдк рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рдмрд╕реЗрдЯ рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ рдЙрди рдЪреАрдЬреЛрдВ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреНрд░рд╛рдВрд╕рдкрд╛рдЗрд▓ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╢рд╛рдпрдж рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛ред рдлреАрдЪрд░рд╕реЗрдЯ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рддрд╣ рдХреНрд╖реЗрддреНрд░ рд╣рдореЗрд╢рд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдмрдврд╝ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдореМрдЬреВрджрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рдврд╛рдВрдЪреЗ рдХреЛ рдЙрд╕ рд╕рдмрд╕реЗрдЯ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡реЗрдмрд╕реИрдореНрдк рдореЗрдВ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдХреА рд╡рд░реНрддрдорд╛рди рдХрдореА рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдФрд░ рдЖрдк рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдореМрдЬреВрджрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд╛рднреЛрдВ рдХреЛ рдЦреЛ рджреЗрдВрдЧреЗ рдХреЛрдбред

рд╡реЗрдм рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рдЖрджрд┐рдо рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд╕рд╛рде, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╕рдмрд╕реЗрдЯ рдЬреЛ рдПрдХ рдмрдбрд╝реЗ рдУрд▓ 'рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЛ рд▓рд┐рдЦреЗ рдмрд┐рдирд╛ рдЯреНрд░рд╛рдВрд╕рдкрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рдЪреМрдбрд╝рд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рд╕реЗ рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓рд┐рдВрдЧ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЗрд╖реНрдЯрддрдо рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рднрд╛рд╖рд╛, рдЪреВрдВрдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЖрдкрдХреЗ рдУрд╡рд░рд╣реЗрдбреНрд╕ рдХреЗрд╡рд▓ рдорд╛рдореВрд▓реА рд░реВрдк рд╕реЗ рдЫреЛрдЯреЗ рд╣реЛрдВрдЧреЗ, рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди (рдиреЗрдЯрд╡рд░реНрдХ!) рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐ рдпрд╣ "рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ" рдЬреИрд╕рд╛ рдХреБрдЫ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ (рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╕рдорд╛рди рдирд╛рд╡ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХрддрд╛ рдпреВрдирд┐рдЯреАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рдЙрдк-рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдмреЗрд╣рддрд░ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЕрдиреНрдп рд╕рдирдХ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХреЛ рдмреБрд▓рд╛рдП рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛)ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдордореЗрдВ рд╕реЗ рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрддреНрдпрдВрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ рд╡реЗрдмрдЧреНрд▓ рдХреЛ рдЧреЗрдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рддреЗрдЬрд╝ рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдореИрдВ рд╡реЗрдмрдЧреНрд▓ рдореЗрдВ рдПрдХ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓рд╛ рдЧреЗрдо рд▓рд╛рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд░рдЦрддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рддрдХрдиреАрдХ рдЗрддрдирд╛ рдХрдЪрд░рд╛ рдкреИрджрд╛ рдХрд░рддреА рд╣реИ рдХрд┐ рдлреНрд░реЗрдо рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред
рдЬреЗрдПрд╕ рдЧреЗрдо рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЧреЗрдорд┐рдВрдЧ рд▓рдЧрднрдЧ рд╡рд┐рдлрд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдПрдХрддрд╛ рдиреЗ рдЙрдбрд╝рд╛рди рднрд░реАред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ C++ => Wasm рдЗрди рдмрдбрд╝реЗ рдпреВрдирд┐рдЯреА рдЬреИрд╕реЗ рдлреНрд░реЗрдорд╡рд░реНрдХ рдирд┐рд░реНрдорд╛рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрдЪрд┐рдд рд▓рд╛рдн рд╣реИ рдЬреЛ рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ WASM рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рдЙрди рд▓реЛрдЧреЛрдВ рдХрд╛ рдХреНрдпрд╛ рдЬреЛ рдереНрд░реА JS рдпрд╛ рдмреЗрдмреАрд▓реЛрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд╛рде рд╕реЗ JS рд▓рд┐рдЦрддреЗ рд╣реИрдВ .. JS/Asm.js => Wasm рдЯреВрд▓рдЪреЗрди рди рд╣реЛрдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реЛрдЧрд╛ рдХрд┐ Js рдореЗрдВ рдмрдбрд╝реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдорд░ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рд▓реЛрдЧ Wasm рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП C++ рдФрд░ рдХреЛрдб рдЬрдирд░реЗрд╢рди рдмреИрдХрдПрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЦреЗрд▓реЛрдВ рдФрд░ рдРрд╕реЗ рдореЗрдВред
JS рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдЪрд┐рдд рдореЗрдВ JS => Wasm рдмреИрдХрдПрдВрдб рдирд╣реАрдВ рд╣реЛрдирд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдИрдПрдорд╕реАрд╕реА рдПрдХ рдмрдбрд╝рд╛ рдвреЗрд░ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрдм рдпрд╣ рдЪрд▓рддрд╛ рд╣реИ рдФрд░ рдЙрд╕рдХреЗ рдХрд╛рд░рдг рдЧрддрд┐ рд╕реНрдкрд╖реНрдЯ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЬреЗрдПрд╕ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЬреЛ рдЕрдЪреНрдЫреЗ рдЬреЗрдПрд╕ рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рд╡реЗ рдЕрднреА рднреА рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЛрдб рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдХрд╛рд░рдг рдЗрддрдирд╛ рдЕрдзрд┐рдХ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░ рд╕рдХреЗред рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рд╛рдорд╛рди рдФрд░ рдЬреАрд╕реА рдХреЛ рдкрд╣рд▓реЗ рдпрд╛ рдЗрдЪреНрдЫрд╛ рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рддрдВрддреНрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬрдм GC рдЪрд▓рддрд╛ рд╣реИ рддреЛ рдлрд╝реНрд░реЗрдо рдЫреЛрдбрд╝рдирд╛ рдПрдХ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреЛрдб рдЬреЗрдирд░реЗрдЯрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЬреЗрдПрд╕ рдХреЛрдб рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рдЯреНрдпреВрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рддрдВрддреНрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬреИрд╕реЗ рд╣рд╕реНрддрд▓рд┐рдЦрд┐рдд рдЕрд╕реЗрдВрдмрд▓реА рдЕрднреА рднреА рдмрд╣реБрдд рдЫреЛрдЯрд╛ рдФрд░ рдЕрддреНрдпрдзрд┐рдХ рд╕рдВрд░реЗрдЦрд┐рдд рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддреА рд╣реИред рд╡реЗрдм-рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рдпрд╣ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

@metacritical C++ WASM рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдмрд╣реБрдд рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рднреА рдРрд╕рд╛ рд╣реА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЛрдИ рднреА рдЗрд╕рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ: рдкреНрд░рджрд░реНрд╢рди рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣реЗрдЧрд╛ред

рдЖрдкрдХреЗ рдЗрдВрдЬрди рдХреА рд╕рдорд╕реНрдпрд╛ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рд╣реИред рдпрд╣ рд╕рдорд╕реНрдпрд╛ рджреВрд░ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдпрджрд┐ рдЖрдк рдПрдХ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рд░реИрдЦрд┐рдХ рдореЗрдореЛрд░реА рдФрд░ WASM рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ ... рдЕрдВрддрддрдГ рдЖрдкрдХреЛ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд░реЛрдХрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреМрди рд╕реА рд╡рд╕реНрддреБрдПрдВ рдЕрднреА рднреА рдЬреАрд╡рд┐рдд рд╣реИрдВ рдФрд░ рдЬреЛ рдирд╣реАрдВ рд╣реИрдВ рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛ рджреЗрдВред рд╕рдорд╛рдзрд╛рди рдХрдЪрд░рд╛ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдирд╣реАрдВ рдмрдирд╛рдирд╛ рд╣реИ, рдЬреАрд╕реА рдХреЛ рдХрднреА рднреА рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд░реЛрдХрдирд╛ред рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ WASM рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЗрдВрдЬрди рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЕрд▓реНрдЯреНрд░рд╛ рдкреНрд░реАрд╕реНрдЯрд╛рдЗрди рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛ Arrays рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ рдФрд░ рдХрдо рдХрдЪрд░рд╛ рдЙрддреНрдкрдиреНрди рдХрд░рддреА рд╣реИ, рд▓рд┐рдЦрдирд╛ рдмреЗрд╣рдж рдХрдард┐рди рд╣реИред рд╕рд╛рде рд╣реА рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рджрд╛ рдЬреЗрдПрд╕ рдХреЛ WASM рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред Asm.js рдпрд╛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреНрд░рдорд╢рдГ рдЯрд╛рдЗрдк рдПрдиреЛрдЯреЗрд╢рди рдпрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреЗ рдХрд╛рд░рдг WASM рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред

@metacritical рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рд╕реА ++ рдЗрдВрдЬрди рдореЗрдВ рднреА, рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреЛрдб рдСрдмреНрдЬреЗрдХреНрдЯ рд▓рд╛рдЗрдлрдЯрд╛рдЗрдо рдореИрдиреЗрдЬрдореЗрдВрдЯ рдХреЗ рдЖрд╕рдкрд╛рд╕ рд╣реЛрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдкрд░рдВрдкрд░рд╛рдЧрдд, рдРрд╕рд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред

рд╕рд╛рджрд╛ JS _could_ рдХреЛ WASM рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдЬреИрд╕реЗ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣, рдкреНрд░рддрд┐рдмрд┐рдВрдм, рдЧреБрдг, рдЖрджрд┐ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рдХ рдХреЛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рд╣рд╛рдпрдХ рдХреЛрдб рдЬреЛрдбрд╝рдиреЗ рд╣реЛрдВрдЧреЗред рдореВрд▓ рд░реВрдк рд╕реЗ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдЕрдВрддрд░реНрдирд┐рд░реНрдорд┐рдд JS рдЗрдВрдЬрди рдХреЗ рд╕рд╛рде рдЖрдкрдХреЛ рдореБрдлреНрдд рдореЗрдВ рдорд┐рд▓рдиреЗ рд╡рд╛рд▓реА рд╕рднреА рдЪреАрдЬрд╝реЗрдВред рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреНрдпрд╛рджрд╛ рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рддреБрд▓рдирд╛ рдХрд░рдХреЗ, ASM.JS рдХреЛ WASM рдореЗрдВ рдмрджрд▓рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред ASM.JS рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрдордд JS рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рд╕рдЦреНрдд рд╕рдмрд╕реЗрдЯ рднреА WASM рджреНрд╡рд╛рд░рд╛ 100% рдХрд╡рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ ASM.JS рдореЗрдВ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдХреЛрдб рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реЛрддрд╛, рддреЛ рдпрд╣ рдПрдХ рд╕рд╛рд░реНрдердХ рдкреНрд░рдпрд╛рд╕ рд╣реЛрддрд╛, рд▓реЗрдХрд┐рди рдЬрд╣рд╛рдБ рддрдХ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рд╕рднреА рдкреНрд░рдореБрдЦ ASM.JS рдлрд╝рд╛рдЗрд▓реЗрдВ C++ рд╕реНрд░реЛрдд рдХреЛрдб рд╕реЗ рдирд┐рд░реНрдорд┐рдд рд╣реЛрддреА рд╣реИрдВ, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реАрдзреЗ WASM рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИрдВред

рддреБрд▓рдирд╛ рдХрд░рдХреЗ, ASM.JS рдХреЛ WASM рдореЗрдВ рдмрджрд▓рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред

рд╕рд╣реА рд╣реИ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдЬ рд╣рдо рдЬрд┐рд╕ рдореБрдЦреНрдп рддрд░реАрдХреЗ рд╕реЗ C++ рдХреЛ wasm рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд╡рд╣ рдЗрд╕реЗ рдкрд╣рд▓реЗ asm.js рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рд╣реИ, рдлрд┐рд░ рдЙрд╕ asm.js рдХреЛ wasm рдореЗрдВ Binaryen рдХреЗ asm2wasm рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рд╣реИ ред

@kripken asm.js рд╕реНрдкреЗрдХреНрд╕ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рд╣рд╕реНрддрд▓рд┐рдЦрд┐рдд asm.js рд▓рд┐рдЦрдирд╛ рдЖрд╕рд╛рди рд▓рдЧрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ js рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдЦреЛ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИ, рд╣рдо рдЕрднреА рднреА рдЙрдкрд░реЛрдХреНрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ WASM рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХреНрдпрд╛ JS рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдпрд╛рдиреА рд╕рдЦреНрддреА рд╕реЗ рдЯрд╛рдЗрдк рдХреА рдЧрдИ рднрд╛рд╖рд╛, рдЗрд╕реЗ JS -> WASM рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрдореНрдореАрджрд╡рд╛рд░ рдмрдирд╛ рд╕рдХрддреА рд╣реИ?
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ TC39 рдореЗрдВ рдЯрд╛рдЗрдк рдХреА рдЧрдИ рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдПрдВ рдЗрд╕реЗ рд╕рдВрднрд╡ рдмрдирд╛ рд╕рдХреЗрдВред

@ aruns07 рдЖрдк рд▓реЛрдЧреЛрдВ рдХреЛ

@Kardax @aruns07 рд▓реЛрдЧ рдЧрддрд┐рд╢реАрд▓ рднрд╛рд╖рд╛ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВред рд╣рдореЗрдВ рдХрднреА-рдХрднреА рдордЬрдмреВрдд рдкреНрд░рдХрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд╣рд░ рд╕рдордп рдирд╣реАрдВред

jfbastien рдиреЗ рдЬреВрди 24, 2015 рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХреА
JS тЖТ wasm рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ рддрднреА рд╕рдордЭ рдореЗрдВ рдЖрдПрдЧрд╛ рдЬрдм wasm GC рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ JIT рд╕рдВрдХрд▓рди рднреА рд╣реИ, рдЬреЛ рдЕрднреА рднреА рдХрд╛рдлреА рджреВрд░ рд╣реИред рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ JS рдЗрдВрдЬрди рдХреЛ wasm рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧрд╛!

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд┐рдВрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░:
https://lists.w3.org/Archives/Public/public-webassembly/2017Feb/0002.html
WebAssembly рдХреА рд╕рд╣рдорддрд┐ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдХрд╛ рдЕрдВрдд

рдЕрдм, рдЖрдкрдХреЗ рдкрд╣рд▓реЗ рдЙрддреНрддрд░ рдХреЗ 2 рд╕рд╛рд▓ рдмрд╛рдж, WebAssembly рдЕрдм рдкреНрд░рдореБрдЦ рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИред
рддреЛ рдпрд╣ рдЬреЗрдПрд╕ рдЗрдВрдЬрди рдХреЛ wasm рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИред
Js -> wasm рдХреЗ рд▓рд╛рдн рди рдХреЗрд╡рд▓ GC рд╕рдорд░реНрдерди рд╣реИ, рдмрд▓реНрдХрд┐ рдЫреЛрдЯреЗ рдХреЛрдб рдЖрдХрд╛рд░ рдФрд░ рддреЗрдЬрд╝ рдирд┐рд╖реНрдкрд╛рджрди рднреА рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ Ionic2 рдЬреИрд╕реЗ рд╣рд╛рдЗрдмреНрд░рд┐рдб рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ, рдЬреЛ рдЖрдорддреМрд░ рдкрд░ JS рдлрд╝рд╛рдЗрд▓ рд▓рдЧрднрдЧ 10MB рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЛрдб рд╕рдордп 5 рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╕реЗрдХрдВрдб (JS = 1 рд╕реЗрдХрдВрдб рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ 2MB рдкрд╛рд░реНрд╕)

@jfbastien рддреЛ рдХреГрдкрдпрд╛ JS -> wasm transpiler рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдкрдирд╛ рдЕрджреНрдпрддрди рдЙрддреНрддрд░ рдкреЛрд╕реНрдЯ рдХрд░реЗрдВ?

рдореЗрд░реЗ рдорд╛рд╕реНрдЯрд░ рдереАрд╕рд┐рд╕ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рдмрд╕реЗрдЯ рд╕реЗ WebAssembly рдореЗрдВ рдПрдХ рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓рд░ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рддрдХ рд╣реА рд╕реАрдорд┐рдд рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдлреНрд▓реЛ рдЬреИрд╕реЗ рдЕрдиреНрдп рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рд╡реЗрд░рд┐рдПрдВрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рд▓рдХреНрд╖реНрдп рдкреВрд░реНрдг рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рднрд╛рд╖рд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореБрдЭреЗ рдЖрдЬ рдЬреЗрдЖрдИрдЯреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рдорд╛рди рдореБрджреНрджреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝реЗрдЧрд╛, рдФрд░ рдЗрд╕рд▓рд┐рдП, рдХреЛрдИ рдЧрддрд┐ рдХреА рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ (рдЕрдзрд┐рдХ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдореЗрд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди 100 рдЧреБрдирд╛ рдзреАрдорд╛ рд╣реЛрдЧрд╛! ) рдпрд╣ рд╕рд╛рдЙрдВрдбрд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдПрдХ рдЙрдкрд╕рдореБрдЪреНрдЪрдп рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ

рдореЗрд░рд╛ рд▓рдХреНрд╖реНрдп рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рднрд╛рдЧреЛрдВ рдХреЛ WebAssembly рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рд╣реИ, рдмрд┐рдирд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдХрд┐ рдбреЗрд╡рд▓рдкрд░ рдЕрдкрдиреЗ рдкрд░рд┐рдЪрд┐рдд рд╡рд┐рдХрд╛рд╕рд╢реАрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рдЫреЛрдбрд╝ рджреЗ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗред рдЗрд╕рд▓рд┐рдП, рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднрд╛рдЧреЛрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рддреЗрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЕрдзрд┐рдХ рдЗрд░рд╛рджрд╛ рд╣реЛрдЧрд╛, рди рдХрд┐ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдпреЛрдЬрди рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛ рдХрд┐рд╕реА рднреА рдореМрдЬреВрджрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред

рдореИрдВ рдХрд╛рдлреА рдЙрддреНрд╕реБрдХ рд╣реВрдВ рдХрд┐ рдореЗрд░реЗ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреНрдпрд╛ рд╣реЛрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдФрд░ рд╡рд┐рдкрдХреНрд╖реЛрдВ рдХреЛ рджреЗрдЦрддрд╛ рд╣реВрдВред рдХреЛрдИ рдЗрдирдкреБрдЯ рд╣реЛ рддреЛ рдмрддрд╛рдПрдВред

@ Mohsen7s рдореЗрд░рд╛ рдЙрддреНрддрд░ рд╕рдЯреАрдХ рд░рд╣рддрд╛ рд╣реИ: WebAssembly рдХрд╛ MVP рд╕рдВрд╕реНрдХрд░рдг GC рдФрд░ JIT рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рддреЗрдЬрд╝ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред рдПрдХ рджреБрднрд╛рд╖рд┐рдпрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрднрд╡ рд╣реИ, рдЪрддреБрд░ рдЪрд╛рд▓ рдХреЗ рд╕рд╛рде рдпрд╣ рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрддрдирд╛ рдирд╣реАрдВ рдЬрд┐рддрдирд╛ рдореВрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рд╣рдорд╛рд░реЗ "рдиреНрдпреВрдирддрдо рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рдЙрддреНрдкрд╛рдж" рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╣реИ: рдХреБрдЫ рдРрд╕рд╛ рд╢рд┐рдк рдХрд░реЗрдВ рдЬреЛ рдкрд╣рд▓реЗ рдХреБрдЫ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛ рдЬреЛрдбрд╝реЗрдВред рдХреГрдкрдпрд╛ рдПрдорд╡реАрдкреА рдкрд░ рдЗрд╕реА рддрд░рд╣ рдХреА рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдФрд░ "рднрд╡рд┐рд╖реНрдп рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ" рдЧрд╛рдпрдм рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдереНрд░реЗрдб рджреЗрдЦреЗрдВ: https://github.com/WebAssembly/design/issues/992#issuecomment -281735235

рддрдХрдиреАрдХреА рдЪрд░реНрдЪрд╛рдУрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреНрдпрд╛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдирд╣реАрдВ, рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ JS -> WASM рджрд╛рд░реНрд╢рдирд┐рдХ рд░реВрдк рд╕реЗ рдФрд░ рдорд╛рд░реНрдХреЗрдЯрд┐рдВрдЧ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдирдВрдмрд░ 1 рд▓рдХреНрд╖реНрдп рдирд╣реАрдВ рд╣реИ - рдореИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд╣реВрдВ рдХрд┐ рдЖрдк рдХрднреА рднреА рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ рдбреЗрд╡рд▓рдкрд░ рдмрд╛рдп-рдЗрди рддрдм рддрдХ рдХрд░реЗрдВ рдЬрдм рддрдХ рдпрд╣ рдорд╛рдорд▓рд╛ рди рд╣реЛред рдпрджрд┐ рд╡реЗ рд╕рднреА рдлреНрд░рдВрдЯ/рдмреИрдХ-рдПрдВрдб/рдлреБрд▓-рд╕реНрдЯреИрдХ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЬреЗрдПрд╕ рдХреМрд╢рд▓ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рдорд╛рд░реНрдХреЗрдЯ рд╡рд░реНрдЯрд┐рдХрд▓ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ, рддреЛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЕрдкрдирд╛ рд╕рдордп рд╕реА ++ рд╕реАрдЦрдиреЗ рдореЗрдВ рдмрд┐рддрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдЙрджреНрдпреЛрдЧреЛрдВ рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд╕рдмрд╕реЗрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡реЗ рдкрд╣рд▓реЗ рд╣реА рдХрд░ рдЪреБрдХреЗ рд╣реЛрдВрдЧреЗред рддреЛ - рдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рдореИрдВ рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдмреЛрд▓рддрд╛ рд╣реВрдВред рдореИрдВ рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд▓реЗрдХрд┐рди рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдкреВрд░реА рдЪрд░реНрдЪрд╛ рдПрдХ рдЧреВрдВрдЬ рдХрдХреНрд╖ рдХреА рддрд░рд╣ рд╣реИ рдФрд░ рдЬреЛ рд▓реЛрдЧ рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреА рдХрдореА рдХрд╛ рдмрдЪрд╛рд╡ рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдкрд╛рдПрдВрдЧреЗ рдХрд┐ рдХреЛрдпрд▓реЗ рдХреЗ рдЪреЗрд╣рд░реЗ рдкрд░ рд▓реЛрдЧреЛрдВ рд╕реЗ рдмрд╛рдд рдХрд░рдиреЗ рдореЗрдВ рдЙрдирдХрд╛ рд╕рдордп рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдХрд┐ рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

@ рдмреЙрд╕рд▓реЗрд╡рд▓

рддрдХрдиреАрдХреА рдЪрд░реНрдЪрд╛рдУрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреНрдпрд╛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдирд╣реАрдВ, рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ JS -> WASM рджрд╛рд░реНрд╢рдирд┐рдХ рд░реВрдк рд╕реЗ рдФрд░ рдорд╛рд░реНрдХреЗрдЯрд┐рдВрдЧ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдирдВрдмрд░ 1 рд▓рдХреНрд╖реНрдп рдирд╣реАрдВ рд╣реИ - рдореИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд╣реВрдВ рдХрд┐ рдЖрдк рдХрднреА рднреА рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ рдбреЗрд╡рд▓рдкрд░ рдмрд╛рдп-рдЗрди рддрдм рддрдХ рдХрд░реЗрдВ рдЬрдм рддрдХ рдпрд╣ рдорд╛рдорд▓рд╛ рди рд╣реЛред рдпрджрд┐ рд╡реЗ рд╕рднреА рдлреНрд░рдВрдЯ/рдмреИрдХ-рдПрдВрдб/рдлреБрд▓-рд╕реНрдЯреИрдХ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЬреЗрдПрд╕ рдХреМрд╢рд▓ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рдорд╛рд░реНрдХреЗрдЯ рд╡рд░реНрдЯрд┐рдХрд▓ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ, рддреЛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЕрдкрдирд╛ рд╕рдордп рд╕реА ++ рд╕реАрдЦрдиреЗ рдореЗрдВ рдмрд┐рддрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдЙрджреНрдпреЛрдЧреЛрдВ рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд╕рдмрд╕реЗрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡реЗ рдкрд╣рд▓реЗ рд╣реА рдХрд░ рдЪреБрдХреЗ рд╣реЛрдВрдЧреЗред рддреЛ - рдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рдореИрдВ рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдмреЛрд▓рддрд╛ рд╣реВрдВред

рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЗрдЪреНрдЫрд┐рдд рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдирд╣реАрдВ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕реЗ рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, WebAssembly рдХреА рдЧреИрд░-рд╡реЗрдм рдЖрдХрд╛рдВрдХреНрд╖рд╛рдПрдВ рд╣реИрдВред

рдпрд╣ рдЪрд░реНрдЪрд╛, рд╕рд╛рде рд╣реА https://github.com/WebAssembly/design/issues/992#issuecomment -281735235, рд╡рд┐рднрд┐рдиреНрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреА рд╡рд┐рд╡рд┐рдзрддрд╛ рдХреЛ рджрд░реНрд╢рд╛рддреА рд╣реИред рдХреЛрдИ рдЧрд▓рдд рдирд╣реАрдВ рд╣реИ! рдПрдорд╡реАрдкреА рдХреЛ рдмрд╕ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рдХрд┐рд╕реЗ рд╕реЗрд╡рд╛ рджреА рдЬрд╛рдПред

рдореИрдВ рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд▓реЗрдХрд┐рди рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдкреВрд░реА рдЪрд░реНрдЪрд╛ рдПрдХ рдЧреВрдВрдЬ рдХрдХреНрд╖ рдХреА рддрд░рд╣ рд╣реИ рдФрд░ рдЬреЛ рд▓реЛрдЧ рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреА рдХрдореА рдХрд╛ рдмрдЪрд╛рд╡ рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдкрд╛рдПрдВрдЧреЗ рдХрд┐ рдХреЛрдпрд▓реЗ рдХреЗ рдЪреЗрд╣рд░реЗ рдкрд░ рд▓реЛрдЧреЛрдВ рд╕реЗ рдмрд╛рдд рдХрд░рдиреЗ рдореЗрдВ рдЙрдирдХрд╛ рд╕рдордп рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдХрд┐ рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

W3C рдХрдореНрдпреБрдирд┐рдЯреА рдЧреНрд░реБрдк рдмрдирд╛рдиреЗ рдХрд╛ рдпрд╣реА рдкреВрд░рд╛ рдмрд┐рдВрджреБ рдерд╛ред рд╣рдореЗрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдлрд▓ рд░рд╣рд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдХрдИ рдЗрдЪреНрдЫреБрдХ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рд╕реБрдирд╛ рд╣реИред рдХреБрдЫ рдПрдорд╡реАрдкреА рдореЗрдВ рд░реБрдЪрд┐ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рднрд╡рд┐рд╖реНрдп рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред

@jfbastien

рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рд╛, рдореИрдВ рдПрдХ рд╡реНрдпрд╛рдкрдХ рдорд▓реНрдЯреАрдкреНрд▓реЗрдпрд░ рдПрдЪрдЯреАрдПрдордПрд▓ 5 рдЧреЗрдо рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ 2008 рд╕реЗ рдПрдХ рдФрд╕рдд рдореЛрдмрд╛рдЗрд▓ рдлреЛрди рдкрд░ рдПрдХ рдЕрдЪреНрдЫреЗ рдПрдлрдкреАрдПрд╕ рдкрд░ рдЪрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ рдФрд░ рдореИрдВ рдЕрднреА рднреА рд╡рд╣рд╛рдВ рдирд╣реАрдВ рд╣реВрдВ! рдФрд░ рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдЬрдм рдореИрдВ рдмрд┐рд▓реЛрдВ рдХрд╛ рднреБрдЧрддрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдмрдВрдз рдкрд░ рдЬрд╛рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреБрд░рд╕реНрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдореЗрд░реА рдкреНрд░рдЧрддрд┐ рдХреА рдХрдореА рдореЗрд░реЗ рдХреЛрдб рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИред

W3C рд╕рдореБрджрд╛рдп рд╕рдореВрд╣ рдмрдирд╛рдиреЗ рдХрд╛ рдпрд╣реА рд╕рдВрдкреВрд░реНрдг рдмрд┐рдВрджреБ рдерд╛

рд╣рд╛ рдлрд┐рд░ рд╕реЗ - рдЖрдк рдХрд┐рддрдиреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рд╢реНрд╡ рджреЗрд╡реЛрдВ рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд╕рдореВрд╣ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ? рдЬреЛ рджреЗрд╡рддрд╛ рдХрд░рддреЗ рд╣реИрдВ рд╡реЗ рдЖрдо рддреМрд░ рдкрд░ рдЗрдВрдЬреАрд▓рд╡рд╛рджреА рдЖрджрд┐ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдЬрд╛рдирдХрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдХреЗ рджреЗрд╡ рдХреЗ рджрд░реНрдж рдХреЛ рдХрдо рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВред

рдФрд░ рдореБрдЭреЗ рдЦреЗрдж рд╣реИ, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдкреГрд╖реНрда рдкрд░/W3C рдореЗрдВ рд╢рд╛рдорд┐рд▓/рдХрд┐рд╕реА рдХреЛ рднреА рдХрдорддрд░ рдирд╣реАрдВ рдЖрдВрдХрдирд╛ рдЪрд╛рд╣рддрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ, рдпрд╣ рдПрдХ рдЪрд░реНрдЪрд╛ рд╣реИ, рдФрд░ рдЖрдЧреЗ рдХреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рд╕реЗ рдпрд╣ рдореЗрд░рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИред

рд╣рдбреНрдбреА рдХреА рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреБрддреНрддреЗ рдХреА рддрд░рд╣ рдЗрд╕ рдкрд░ рд╡рд╛рдкрд╕ рдЖрдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдлрд╝реА, рд▓реЗрдХрд┐рди рджреВрд░ рд░рд╣рддреЗ рд╣реБрдП рдореИрдВрдиреЗ рдЕрдкрдиреА рдмрд╛рдд рд░рдЦрдиреЗ рдХрд╛ рдПрдХ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛ рд╕реЛрдЪрд╛ред рдЕрдкрдиреЗ рдЕрдЧрд▓реЗ рдиреНрдпреВрдЬрд╝рд▓реЗрдЯрд░/рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдпрд╛ рдлреАрдбрдмреИрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдХрд┐рд╕реА рднреА рддрд░реАрдХреЗ рд╕реЗ, рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░реНрд╕ (рдЖрдкрдХреЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ) рд╕реЗ рдпрд╣ рдкреНрд░рд╢реНрди рдкреВрдЫреЗрдВ:

рдмреНрд░рд╛рдЙрдЬрд╝рд░-рдЖрдзрд╛рд░рд┐рдд рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдЕрдЧрд▓реЗ рд╕реНрддрд░ рдкрд░ рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рджреВрд╕рд░реА рднрд╛рд╖рд╛ рд╕реАрдЦрдиреА рд╣реЛрдЧреА; рдХреНрдпрд╛ рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реЛрдЧрд╛?

рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рд╡рд╣ рдкреНрд░рд╢реНрди рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЗрд╕ рдкреГрд╖реНрда рдкрд░ рдХреБрдЫ рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рд╣реА (рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ, рдирд┐рдВрджрдиреАрдп рд░реВрдк рд╕реЗ) рдЙрддреНрддрд░ рджрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИред

рдФрд░ рдЕрдВрдд рдореЗрдВ (рдореИрдВ рд╡рд╛рджрд╛ рдХрд░рддрд╛ рд╣реВрдБ ;-)) @jfbastien , рдЕрдЧрд░:

рдЗрд╕реЗ рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, WebAssembly рдХреА рдЧреИрд░-рд╡реЗрдм рдЖрдХрд╛рдВрдХреНрд╖рд╛рдПрдВ рд╣реИрдВред

рдЗрд╕реЗ "WebAssembly" рдХреНрдпреЛрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ?

@BossLevel рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ рдЖрдк рдХрд╣рд╛рдБ рд╕реЗ рдЖ рд░рд╣реЗ рд╣реИрдВред рдореИрдВ рд╕реБрд╕рдорд╛рдЪрд╛рд░ рдкреНрд░рдЪрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╛рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдореЗрд░реА рд╕рдордЭ рдпрд╣ рд╣реИ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдЪрд╛рд░рдХ рдкрд╛рд░рдВрдкрд░рд┐рдХ "рджреЗрд╢реА" рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд╕рдВрдкрд░реНрдХ рдореЗрдВ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ WebAssembly рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред рдЖрдкрдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рдореИрдВ "рдЧрдВрднреАрд░" рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд╕рдВрдХреЗрдд рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХрддрд╛ рдХреА рд░реБрдЪрд┐ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдпреЗ рд▓реЛрдЧ рдЕрдкрдиреЗ рдирд╛рдо рдХреЗ рддрд╣рдд рдЬреАрдердм рдкрд░ рднреА рдкреЛрд╕реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдВрдмрджреНрдзрддрд╛ рд╣рдореЗрд╢рд╛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЙрдирдХреЗ рд▓рд┐рдП рдмреЛрд▓рдиреЗ рдХрд╛ рдореЗрд░рд╛ рд╕реНрдерд╛рди рдирд╣реАрдВ рд╣реИред

рд╣рд╛, рдореИрдВ рдПрдХ рд╡реНрдпрд╛рдкрдХ рдорд▓реНрдЯреАрдкреНрд▓реЗрдпрд░ рдПрдЪрдЯреАрдПрдордПрд▓ 5 рдЧреЗрдо рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ 2008 рд╕реЗ рдПрдХ рдФрд╕рдд рдореЛрдмрд╛рдЗрд▓ рдлреЛрди рдкрд░ рдПрдХ рдЕрдЪреНрдЫреЗ рдПрдлрдкреАрдПрд╕ рдкрд░ рдЪрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ рдФрд░ рдореИрдВ рдЕрднреА рднреА рд╡рд╣рд╛рдВ рдирд╣реАрдВ рд╣реВрдВ! рдФрд░ рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдЬрдм рдореИрдВ рдмрд┐рд▓реЛрдВ рдХрд╛ рднреБрдЧрддрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдмрдВрдз рдкрд░ рдЬрд╛рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреБрд░рд╕реНрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдореЗрд░реА рдкреНрд░рдЧрддрд┐ рдХреА рдХрдореА рдореЗрд░реЗ рдХреЛрдб рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИред

рдореЗрд░рд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рдерд╛ рдХрд┐ рддреЗрдЬреА рд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИред рдореИрдВ рдЬреЛ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рд╡рд╣ рд╣реИ: WebAssembly рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЛ рдПрдХ рдРрд╕реЗ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдкреНрд░рджрд░реНрд╢рди рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдЕрдиреБрдХреВрд▓ рд╣реИред рдпрд╣ TC39 рдХреЛ рдХреЗрд╡рд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╣реА рдПрдХ рд╕рдВрдХрд▓рди рд▓рдХреНрд╖реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рд╣рд╛ рдлрд┐рд░ рд╕реЗ - рдЖрдк рдХрд┐рддрдиреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рд╢реНрд╡ рджреЗрд╡реЛрдВ рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд╕рдореВрд╣ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ? рдЬреЛ рджреЗрд╡рддрд╛ рдХрд░рддреЗ рд╣реИрдВ рд╡реЗ рдЖрдо рддреМрд░ рдкрд░ рдЗрдВрдЬреАрд▓рд╡рд╛рджреА рдЖрджрд┐ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдЬрд╛рдирдХрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдХреЗ рджреЗрд╡ рдХреЗ рджрд░реНрдж рдХреЛ рдХрдо рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВред

рдФрд░ рдореБрдЭреЗ рдЦреЗрдж рд╣реИ, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдкреГрд╖реНрда рдкрд░/W3C рдореЗрдВ рд╢рд╛рдорд┐рд▓/рдХрд┐рд╕реА рдХреЛ рднреА рдХрдорддрд░ рдирд╣реАрдВ рдЖрдВрдХрдирд╛ рдЪрд╛рд╣рддрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ, рдпрд╣ рдПрдХ рдЪрд░реНрдЪрд╛ рд╣реИ, рдФрд░ рдЖрдЧреЗ рдХреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рд╕реЗ рдпрд╣ рдореЗрд░рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИред

рдЖрдкрдХрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорд╛рдиреНрдп рд╣реИ, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЖрдк рдЬрд╣рд╛рдВ рд╕реЗ рдЦрдбрд╝реЗ рд╣реИрдВ, рдореИрдВ рдХреБрдЫ рдРрд╕рд╛ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рд╕ рдкрд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░рдирд╛ рдХрдард┐рди рд╣реИред рд╣рдореЗрдВ рдЗрд╕реЗ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрд╡рд╛рдж рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдпрд╛ рд╣реЗ, рд╢рд╛рдпрдж рдореИрдВ рдЧрд▓рдд рд╣реВрдВ: рдкрд▓рдХ :)ред

рдмреНрд░рд╛рдЙрдЬрд╝рд░-рдЖрдзрд╛рд░рд┐рдд рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдЕрдЧрд▓реЗ рд╕реНрддрд░ рдкрд░ рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рджреВрд╕рд░реА рднрд╛рд╖рд╛ рд╕реАрдЦрдиреА рд╣реЛрдЧреА; рдХреНрдпрд╛ рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реЛрдЧрд╛?

рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рд╡рд╣ рдкреНрд░рд╢реНрди рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЗрд╕ рдкреГрд╖реНрда рдкрд░ рдХреБрдЫ рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рд╣реА (рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ, рдирд┐рдВрджрдиреАрдп рд░реВрдк рд╕реЗ) рдЙрддреНрддрд░ рджрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИред

рдореБрдЭреЗ рдЖрдкрдХреА рдЪрд┐рдВрддрд╛ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдЪ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдлрд┐рд░ рд╕реЗ, рдореИрдВ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдБред рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореИрдВ рдЗрд╕реЗ рджреЗрдЦрддрд╛ рд╣реВрдВ, WebAssembly рдЗрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдирдП рдбреЗрд╡рд▓рдкрд░реНрд╕ рд▓рд╛рддрд╛ рд╣реИ, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрддреАрдд рдореЗрдВ рд╡реЗрдм рдХреЗ рд╕рд╛рде рдЦрд░рд╛рдм рдЕрдиреБрднрд╡ рдерд╛ рдпрд╛ рдбрд░рд╛рд╡рдиреА рдХрд╣рд╛рдирд┐рдпрд╛рдВ рд╕реБрдиреА рдереАрдВред рдмрджрд▓реЗ рдореЗрдВ, рдпрд╣ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдорджрдж рдХрд░рддрд╛ рд╣реИ рдЬреЛ "рдкрд╛рд░рдВрдкрд░рд┐рдХ" рдХреЛрдб (рдЬрд┐рд╕реЗ рдХреБрдЫ рд▓реЛрдЧ "рд╡рд┐рд░рд╛рд╕рдд" рдХрд╣рддреЗ рд╣реИрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрд╕ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ: рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ WebAssembly рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рдпреЛрдЧ рдпреЛрдЧреНрдп рд╣реЛред рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ npm (рдЬреЛ... рд╣рдореЗрд╢рд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реЛрддрд╛!) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореБрдЭреЗ рдХреБрдЫ рд╣рдж рддрдХ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдЯреНрд╡рд┐рдЯрд░, рд╣реИрдХрд░ рдиреНрдпреВрдЬ, рд░реЗрдбрд┐рдЯ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд╕рдореНрдореЗрд▓рдиреЛрдВ рдкрд░ рд╣рдо рдЬреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ, рдЙрд╕рдХреЗ рдХрд╛рд░рдг рдпрд╣ рдирд┐рдХрд▓реЗрдЧрд╛ред рдлрд┐рд░ рд╕реЗ, рд╢рд╛рдпрдж рдореИрдВ рдЧрд▓рдд рд╣реВрдБ рдФрд░ рдореИрдВ рдХрдХреНрд╖реЛрдВ рдХреА рдкреНрд░рддрд┐рдзреНрд╡рдирд┐ рд╕реБрди рд░рд╣рд╛ рд╣реВрдБред рдХрдо рд╕реЗ рдХрдо, рдореИрдВрдиреЗ C++ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреГрд╖реНрдарднреВрдорд┐ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдореНрдореЗрд▓рдиреЛрдВ рдореЗрдВ рдмрд╣реБрдд рдЖрд╢рд╛рдЬрдирдХ рдЪрд░реНрдЪрд╛ рдХреА рд╣реИред

рд╕рд╛рде рд╣реА, рдЯреАрд╕реА39 рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рд╣рд╛рд▓ рдХреЗ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ ES6 рдХреЗ рд╕рд╛рдеред

рд▓реЗрдХрд┐рди рдЖрдкрдХреА рдмрд╛рдд рдмрдиреА рд╣реБрдИ рд╣реИ: рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде -рд╕рд╛рде C++ рдпрд╛ Rust рдЬреИрд╕реА рдЕрдзрд┐рдХ "WebAssembly-рдлреНрд░реЗрдВрдбрд▓реА" рднрд╛рд╖рд╛рдУрдВ рд╕реЗ

рдЗрд╕реЗ "WebAssembly" рдХреНрдпреЛрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ?

рд╣рд╛! рдпрд╣ рдПрдХ рдЕрджреНрднреБрдд рдкреНрд░рд╢реНрди рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ "WebAssembly: рди рддреЛ рд╡реЗрдм рдФрд░ рди

рддреЛ рдореИрдВ рддреБрдореНрд╣реЗрдВ рдЙрд╕ рдкрд░ рд▓рдЯрдХрд╛рдП рд░рдЦреВрдВрдЧрд╛ред

рдореИрдВ рдпрд╣рд╛рдБ рджреЛ рдЗрдЪреНрдЫрд╛рдПрдБ рдкрдврд╝ рд░рд╣рд╛ рд╣реВрдБ:

  1. рддреЗрдЬреА рд╕реЗ рд▓реЛрдб рд╕рдордп рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ред
  2. рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рд╕реА ++ рдФрд░ рдорд╛рдирдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмреАрдЪ рдкреНрд░рджрд░реНрд╢рди рдЕрдВрддрд░ рдХреЛ рдкрд╛рдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫред

рдЖрдЗрдЯрдо 2 рдХрдИ рдХрдВрдкрдирд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЪрд▓ рд░рд╣реЗ рд╢реЛрдз рдФрд░ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдирд┐рд╡реЗрд╢ рдХрд╛ рд╡рд┐рд╖рдп рд╣реИред рдпрджрд┐ рдЖрдк рдкрд┐рдЫрд▓реЗ 15 рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрдиреЛрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдорд╛рдк рдХреЛ рджреЗрдЦреЗрдВ, рддреЛ рдпрд╣ рднреА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ ... рдЕрдВрддрд░ рдЫреЛрдЯрд╛ рд╣реЛрддрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореИрдВ рдЬрд╛рдирддрд╛ рд╣реВрдВ, рдЖрдЗрдЯрдо 1 рдкрд░ рдХрд┐рд╕реА рдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрд╣ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЬрдЯрд┐рд▓ рд╣реИ, рдФрд░ рдХрдард┐рди рд╣реЛрддрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреАрд╡реНрд░ рдЧрддрд┐ рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИред WebAssembly рдмрд╣реБрдд рд╕рдЦреНрдд рдФрд░ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд░рд▓ рд╣реИ, рдФрд░ рдЗрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдиреЗ рдореЗрдВ рдЕрднреА рднреА рдХрдИ рд╕рд╛рд▓ рд▓рдЧ рдЧрдПред

@jfbastien - рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░ рдФрд░ рд╡рд┐рдЪрд╛рд░рд╢реАрд▓ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж :)

рддреЛ рдХреБрдЫ рджреГрд╖реНрдЯрд╛рдВрдд рдмрд┐рдВрджреБ, рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдХреНрд░рдо рдореЗрдВ рдирд╣реАрдВ:

рез) рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рдореИрдВ рдЗрд╕ рдкреВрд░реА рдЪрд░реНрдЪрд╛ рдХреЛ рджреЗрдЦрддрд╛ рд╣реВрдВ рдФрд░ рдЬрд┐рд╕ рджрд┐рд╢рд╛ рдореЗрдВ рдЖрдк рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдЙрд╕ рдкрд░ рдореЗрд░рд╛ рд╡рд┐рдЪрд╛рд░, рдиреЛрдбрдЬреЗрдПрд╕ рдХреЗ рд╕рд╛рде рд╣реИ - рдПрдХ рдЬреЗрдПрд╕ рдПрдкреАрдЖрдИ/рд╕реА ++ рдмреИрдХ-рдПрдВрдб рдХреЗ рд▓рд┐рдП рдлреНрд░рдВрдЯ-рдПрдВрдб - рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧ/рдкрд░рд┐рдЪрд┐рдд рдЖрджрд┐ рдореЗрдВ рдЖрд╕рд╛рдиреА рдорд┐рд▓рддреА рд╣реИ рдПрдХ рдУрд░ рдЧрддрд┐ рдФрд░ рджреВрд╕рд░реА рдУрд░ рдЧрддрд┐ред
2) рдиреЛрдб рдХреЗ рд╕рд╛рде рдЪрд┐рдкрдХреЗ рд╣реБрдП, 2008 рдореЗрдВ рд╡рд╛рдкрд╕ рдЬрдм рдореИрдВрдиреЗ рдЕрдкрдиреА рдирд┐рдЬреА рдУрдбрд┐рд╕реА рд╢реБрд░реВ рдХреА ;-) рдореИрдВрдиреЗ рдореВрд▓ рд░реВрдк рд╕реЗ рдмреИрдХ-рдПрдВрдб рдХреЗ рд▓рд┐рдП PHP рдФрд░ рдЬрд╛рд╡рд╛ рджреЛрдиреЛрдВ рдХреЛ рджреЗрдЦрд╛ (рдореИрдВ рдЖрдИрдЯреА рдкреНрд░рдмрдВрдзрди рдХреЗ рдЕрдВрдзреЗрд░реЗ рдкрдХреНрд╖ рдкрд░ рдПрдХ рджрд╢рдХ рдХреЗ рдмрд╛рдж рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рд░рд╣рд╛ рдерд╛) рдФрд░ рдмрд┐рдХреНрд░реА ;-)!) рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХрд╣рд╛рдиреА рдЬреЛ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдореИрдВ рдЕрдХреЗрд▓рд╛ рдбреЗрд╡рд▓рдкрд░ рд╣реВрдВ рдЬреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡реЗ рдЬреЛ рдЦреБрдж рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рди рдХрд┐ рдХрдВрдкрдиреА рдХреЗ рдкреИрд╕реЗ рдкрд░ рдЬрдм рд╡реЗ рднрд╛рд╖рд╛ рд╕реАрдЦрддреЗ рд╣реИрдВред
3) рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдЕрдЧрд▓рд╛ рдмрд┐рдВрджреБ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЬрд╛рдирдмреВрдЭрдХрд░ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдЧреБрдЧрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рднреА рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ) рд▓реЗрдХрд┐рди рдореИрдВ рд╢рд░реНрдд рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдПрдПрд╕рдПрдо рдХрд╛ рдЯреЗрдХ-рдЕрдк рдХрдо рдерд╛ред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдореИрдВрдиреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдбреЗрдореЛ рджреЗрдЦрд╛ рддреЛ рдореИрдВ рдмрд╣реБрдд рдЙрддреНрд╕рд╛рд╣рд┐рдд рд╣реЛ рдЧрдпрд╛ рд▓реЗрдХрд┐рди рдпрд╣ рдЬрд╛рдирдиреЗ рдкрд░ рдХрд┐ рдХреЛрдИ рдХрдВрдкрд╛рдЗрд▓рд░ рдирд╣реАрдВ рдерд╛, рдореИрдВрдиреЗ рддреБрд░рдВрдд рдЗрд╕реЗ рдЦрд╛рд░рд┐рдЬ рдХрд░ рджрд┐рдпрд╛ред рдПрдХ рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░ рд╕реЗ рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЧреНрд░рд╣ рдкрд░ рд╕рдмрд╕реЗ рдмрдбрд╝реЗ рджреЗрд╡ рд╕рдореБрджрд╛рдп рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ (рдЬреЗрдПрд╕) рдПрдкреАрдЖрдИ, рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ, рд╕рдВрд╕рд╛рдзрдиреЛрдВ, рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓, рдврд╛рдВрдЪреЗ рдЖрджрд┐ рдХреА рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд╕рд╛рде рдЙрд╕рд╕реЗ рджреВрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдСрдирд▓рд╛рдЗрди рдЙрдкрд▓рдмреНрдз рд╣реИ, рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкреВрдЫрдирд╛ рд╣реИ, рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдкрд╣рд▓рд╛ рдХрджрдо (рдпрд╛рдиреА рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░) рдмрдирд╛рдиреЗ рдХреЗ рд╕рд╛рдзрди рдХреЗ рд╕рд╛рде рдЙрдиреНрд╣реЗрдВ рдкреНрд░рджрд╛рди рди рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреА рдУрд░ рд╕реЗ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдЪрд╛рд▓ рдЧреБрдо рд╣реИред рдореИрдВ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рджрд╛рдВрд╡ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдЬрд╛рдКрдВрдЧрд╛ рдХрд┐ рд╢реЗрдбрд┐рдВрдЧ рд▓реИрдВрдЧреЗрдЬ (рдЬреАрдПрд▓рдПрд╕рдПрд▓) рдореЗрдВ рд╡рд┐рдХрд╛рд╕ рдиреЗ рдЕрдм рдПрдПрд╕рдПрдо рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╡реГрджреНрдзрд┐ рджреЗрдЦреА рд╣реИ рдХрд┐ рдЖрдк рдП) рдЗрд╕реЗ рд╕реАрдзреЗ рдкрд┐рдХреНрд╕реА.рдЬреЗрдПрд╕ рдФрд░ рдереНрд░реА.рдЬреЗрдПрд╕ рдЬреИрд╕реЗ рдЙрддреНрдХреГрд╖реНрдЯ рдврд╛рдВрдЪреЗ рдореЗрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдмреА) рдЗрд╕рдХреЗ рд╕рд╛рде рдЦреЗрд▓рддреЗ рд╣реИрдВ рд╕реАрдзреЗ ShaderToy рдЬреИрд╕реА рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ред
4) рдЖрдо рддреМрд░ рдкрд░ рдЦреЗрд▓ рдЙрджреНрдпреЛрдЧ/рдЧреЗрдорд┐рдВрдЧред рдореИрдВ рдпрд╣рд╛рдВ рдЕрдиреБрднрд╡ рд╕реЗ рдмрд╛рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдП) рдореИрдВ рдкрд┐рдЫрд▓реЗ 9 рд╡рд░реНрд╖реЛрдВ рд╕реЗ (рдЕрднреА рддрдХ рдЕрдкреНрд░рдХрд╛рд╢рд┐рдд!) рдЧреЗрдо рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдмреА) рдореИрдВрдиреЗ рдЯреАрдЖрдИрдЬреАрдП (рдпреВрдХреЗ рдХреЗ рдЧреЗрдо рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЯреНрд░реЗрдб рдПрд╕реЛрд╕рд┐рдПрд╢рди) рдХреЗ рдмреЛрд░реНрдб рдореЗрдВ 2 рд╕рд╛рд▓ рддрдХ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИред рдореЗрд░рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░реЛ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗрдм рдкрд░ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдЗрдЪреНрдЫреБрдХ рдЧреЗрдо рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╢рд╛рдпрдж рдПрдХ рддрд░рдл рдЧрд┐рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдЧреЗрдо рдбреЗрд╡рд▓рдкрд░реНрд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрд╕ рдЙрджреНрдпреЛрдЧ рдореЗрдВ рд╣реИрдВ рдЬреЛ рд╡реЗ рдкреНрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд╡рдЬреВрдж рдкреЗ-рд╣рд┐рдЯ/рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпреЗ WA рдХреЗ рд▓рдХреНрд╖рд┐рдд рджрд░реНрд╢рдХ рдирд╣реАрдВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рдВ, рдЙрдирдХреЗ рдирд┐рдпреЛрдХреНрддрд╛ рд╣рдореЗрд╢рд╛ рдЕрдкрдиреЗ рдЧреЗрдо рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдП рдорд╛рдзреНрдпрдореЛрдВ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореЛрдмрд╛рдЗрд▓ рдХреЛ рдЫреЛрдбрд╝рдХрд░ (рдЬрд╣рд╛рдВ рдореВрд▓ рдХреЛрдб рджреБрдЦ рдХреА рдмрд╛рдд рд╣реИ рдФрд░ рдЬрд┐рд╕реЗ рдореИрдВ WASM рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ), рд╡реЗрдм рдЕрднреА рднреА рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдореБрджреНрд░реАрдХрд░рдг рджреЛрдиреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреАрд╕реА/рдХрдВрд╕реЛрд▓ рд╕реЗ рдЦрд░рд╛рдм рд╕рдВрдмрдВрдзред
5) рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЬрдмрдХрд┐ рдмреЗрдбрд░реВрдо рдХреЛрдбрд░/рдЗрдВрдбреА рджреГрд╢реНрдп рдЪрд░рдо рдкрд░ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдерд╛, рдРрд╕реЗ рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рдПрдХ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬреЛ рдЕрдкрдиреЗ рдЦрд╛рд▓реА рд╕рдордп рдореЗрдВ рд╡реЗрдм рдЧреЗрдо рдмрдирд╛рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдЬрдм рддрдХ рдореИрдВ рд░рд╛рдЬрдиреАрддрд┐ рдореЗрдВ рдЦреБрд▓рдХрд░ рдирд╣реАрдВ рдЖрдирд╛ рдЪрд╛рд╣рддрд╛ рдФрд░ рдореИрдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдПрдХрддрд╛ рдХреЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдирд╣реАрдВ рдорд╛рд░ рд░рд╣рд╛ рд╣реВрдВ (рдореИрдВрдиреЗ рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рдХреЗ рд╕рд╛рде рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрддреНрдкрд╛рдж рд╣реИ), рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╣рд┐рддреЛрдВ рдХреА рджреЗрдЦрднрд╛рд▓ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдХрдИ рдЫреЛрдЯреЗ рд▓реЛрдЧреЛрдВ рдореЗрдВ рд╕реЗ, рдПрдХ рдмрдбрд╝рд╛ рдЖрджрдореА рдирд╣реАрдВ (рдпрд╣ рджрд╛рд░реНрд╢рдирд┐рдХ рдФрд░ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рджреЛрдиреЛрдВ рддрд░рд╣ рд╕реЗ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ)ред

рдореИрдВ рдЖрдкрдХреА рдмрд╛рдд @jfbastien рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрддреНрд╕реБрдХ

@RyanLamansky - рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЙрдЪрд┐рдд рднреЗрдж рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ:

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореИрдВ рдЬрд╛рдирддрд╛ рд╣реВрдВ, рдЖрдЗрдЯрдо 1 рдкрд░ рдХрд┐рд╕реА рдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрд╣ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЬрдЯрд┐рд▓ рд╣реИ, рдФрд░ рдХрдард┐рди рд╣реЛрддрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреАрд╡реНрд░ рдЧрддрд┐ рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕реНрддрд░ рдкрд░, рдЬреИрд╕рд╛ рдХрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдЬреЛ 2008 рд╕реЗ рдкреНрд░рддрд┐рджрд┐рди 8 рдШрдВрдЯреЗ JS рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реИ, рдореИрдВ JS рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдмрд╕ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рд░реБрдХрддреЗ рд╣реБрдП рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдмрд╛рдХреА рд╕рднреА рдХреЛ рдкрдХрдбрд╝рдиреЗ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ! рдореИрдВрдиреЗ рд╣рдореЗрд╢рд╛ рд╕рдмрд╕реЗ рдХрдо рдЖрдо рднрд╛рдЬрдХ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ рдпрд╛рдиреА рдЕрдЧрд░ рдЗрд╕рдореЗрдВ 100% рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИ рддреЛ рдпрд╣ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ (рдЖрдИрдИ 6/7/8/9 рдПрдХ рддрд░рдл ;-))ред рдФрд░ рдЗрд╕рд▓рд┐рдП рдЬрдм рд╣рдореЗрдВ рдбреЗрд╕реНрдХрдЯреЙрдк рдФрд░ рдореЛрдмрд╛рдЗрд▓ рдкрд░ ES5 рдХреЗ рд▓рд┐рдП 100% рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдорд░реНрдерди рднреА рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рддреЛ рд╣рдо рдЦреБрдж рдХреЛ рдЯреНрд░реЗрдВрдбреА ES6 рдкреИрдЯрд░реНрди рдФрд░ рдХрдерд┐рдд рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдЬреАрдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкрд╛рддреЗ рд╣реИрдВред рднрд╛рд╖рд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ (рдЗрд╕рдХреЗ рдмрд╛рд╡рдЬреВрдж рдЗрд╕реЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕рдХреЗ рдмрд╛рдЬрд╛рд░-рд╢реЗрдпрд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдПрдХ рд╕рдореБрджрд╛рдп рдХреЗ рд░реВрдк рдореЗрдВ, рдЕрдЧрд▓реЗ рдХреБрдЫ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдХреБрд╢рд▓, рдЗрд╖реНрдЯрддрдо рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдЦрдиреЗ рдореЗрдВ рдХреИрд╕реЗ рдЦрд░реНрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╣реИ рдлрд┐рд░ рд╕реЗ рдирдП рд╣рд┐рдкреНрд╕реНрдЯрд░ рдХреЛрдб рдХреЗ рд╕рд╛рде рдкрд╣рд┐рдпрд╛ рдХрд╛ рдлрд┐рд░ рд╕реЗ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рдирд╛ (рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВ рд░реЗрдВрдЯ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ ;-))?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╢рд╛рдпрдж рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЕрдкрдирд╛ рдХреЛрдЯ рдорд┐рд▓ рдЬрд╛рдП ;-)

@RyanLamansky рдореБрдЭреЗ рдЗрд╕ рдзрд╛рд░рдгрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рд╣реИ рдХрд┐ WebAssembly рдЖрдкрдХреЗ рдмрдВрдбрд▓ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рд▓рдХреНрд╖реНрдп рд╣реЛрдЧрд╛, рдФрд░ рдЕрдЪрд╛рдирдХ рд╕рдм рдХреБрдЫ рддреЗрдЬ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред WebAssembly рдХреЗ рдкрд╛рд╕ рдПрдХ рдмрд╣реБрдд рд╣реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓рдХреНрд╖реНрдп рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ, рдФрд░ рд╕рдВрднрд╡рддрдГ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рд╕реЗ рднрд░реЗ рдмрдбрд╝реЗ JS рдХреЛрдб рдмреЗрд╕ рдХреЗ рд╕рд╛рде рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡реНрдпрд╡рд╕рд╛рдп рдЙрдиреНрдореБрдЦ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЗрдПрд╕ рдЖрдзрд╛рд░рд┐рдд рд╡рд┐рдХрд╛рд╕ рдЬреАрд╡рди рдЪрдХреНрд░ рдореЗрдВ рдХреБрдЫ рдЕрдВрддрд░рд╛рд▓ рд╣реИрдВ:
1) рдмрдбрд╝реЗ рдЬреЗрдПрд╕ рдмрдВрдбрд▓реЛрдВ рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдУрд╡рд░рд╣реЗрдб рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рдЕрдкрд░реНрдпрд╛рдкреНрдд рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
2) рдорд╛рдирдХ рдЬреЗрдПрд╕ рдХреЛрдб рдореЗрдВ рдЬреЗрдЖрдИрдЯреА/рдореВрд▓ рдХреЛрдб рдЕрдиреБрдХреВрд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдиреЛрдЯреЗрд╢рди (рдФрд░ рд╢рд╛рдпрдж рдЕрдиреНрдп рд╕рдВрдХреЗрдд) рдХреА рдХрдореА рд╣реИред

рдпрд╣ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдЬреЗрдПрд╕ рдХрд╛ рдПрдХ рдареАрдХ рд╕реЗ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдПрдиреЛрдЯреЗрдЯ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдЬреЛ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдЕрдзрд┐рдХ рдирд┐рдпрддрд╛рддреНрдордХ рдФрд░ рдкрд╛рд░рджрд░реНрд╢реА рдЕрдиреБрдХреВрд▓рди рдкрде рдФрд░ рднрд╛рд╖рд╛ рдХреЗ рдЙрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдПрдХ рдкреВрд░реНрд╡-рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдмрд╛рдЗрдирд░реА рд╕рдВрд╕реНрдХрд░рдг рджреЗрддрд╛ рд╣реИред

рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдбрдмреНрд▓реНрдпреВрдПрдПрд╕рдПрдо рдЬреЗрдПрд╕ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЪрд▓рддрд╛ рд╣реИ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд╕рдорд╛рди рдЬреЗрдПрд╕ рдЗрдВрдЬрди (рдЕрдиреБрдХреВрд▓рд┐рдд) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред https://developer.mozilla.org/en-US/docs/WebAssembly

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдкреНрд░рд╢реНрди рдХреЛ рдирд╣реАрдВ рд╕рдордЭрддрд╛ред

рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рдкреНрд░рд╢реНрди рдкреВрдЫрдиреЗ рдФрд░ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ: рдХреНрдпрд╛ рдкреНрд░рд╢реНрди рдФрд░ Webassembly рдЯреАрдо рдХреА рдЯрд┐рдкреНрдкрдгреА рдХрд╛ рдЕрд░реНрде рдпрд╣ рд╣реИ рдХрд┐ Webassembly is FASTER than Javascript? I do not see performance comparison for WebAssembly Code and similar Javascript Code? рдореБрдЭреЗ рдХреЗрд╡рд▓ рд╡реНрдпрдХреНрддрд┐рдкрд░рдХ рд╡рд┐рдЪрд╛рд░ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдХреЛрдИ рдЗрд╕реЗ рд╕рдордЭрд╛ рд╕рдХрддрд╛ рд╣реИ? рдпрджрд┐ рд╡реЗрдмрд╕реЗрдореНрдмрд▓реА рддреЗрдЬ рд╣реИ рддреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреЛ рдПрдХ рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓рд░ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ? рдпрджрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рддреЛ ES7/TS рдХреЛрдб рдХреНрдпреЛрдВ рдирд╣реАрдВ? рдЗрд╕рдХреЗ рдЗрд░реНрдж-рдЧрд┐рд░реНрдж рдЗрддрдиреА рдЧреЛрдкрдиреАрдпрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?

@ganeshkbhat WASM рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░рд┐рд▓реАрдЬрд╝ asm.js рдХреА рдПрдХ рдХреЙрдореНрдкреИрдХреНрдЯ рдмрд╛рдЗрдирд░реА рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╕реЗ рдереЛрдбрд╝реА рдЕрдзрд┐рдХ рд╣реИ, рдЬреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рдЦреНрдд рдЙрдкрд╕рдореБрдЪреНрдЪрдп рд╣реИред рдЬрдм рддрдХ 64-рдмрд┐рдЯ рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ asm.js рд╕реЗ рддреЗрдЬ рдирд╣реАрдВ рдЪрд▓рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрдиреНрд╣реЗрдВ asm.js рдореЗрдВ рдЕрдиреБрдХрд░рдг рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред

WASM рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИрдВ рдЬреЛ рдЗрд╕реЗ рдХреНрд╖рдорддрд╛ рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдХрд░реАрдм рд▓рд╛рдПрдВрдЧреЗ (рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣, DOM рдПрдХреАрдХрд░рдг, рдереНрд░реЗрдбреНрд╕), рд▓реЗрдХрд┐рди рдкреВрд░реНрдг рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реБрд╡рд┐рдзрд╛ рд╕реЗрдЯ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрдИ рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рд╣реИред рддреЛ, рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ JS-> WASM рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓рд░ рдХрднреА рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдирдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрдирд╛рдП рдЬрд╛рдПрдВрдЧреЗ рдЬреЛ WASM рдХреА рд╕реАрдорд╛рдУрдВ рдХреЗ рднреАрддрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЖрдЬ, рд╡рд╣ рд╕реА рдФрд░ рд╕реА ++ рд╣реИ, рдЬрд╣рд╛рдВ рднрд╛рд╖рд╛ рдкреНрд░рддрд┐рдмрдВрдз WASM рдФрд░ asm.js рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдВрд░реЗрдЦрд┐рдд рд╣реИрдВред

рдХреЛрдИ рд░рд╣рд╕реНрдп рдирд╣реАрдВ рд╣реИ рдФрд░ рди рд╣реА рдХреЛрдИ рдЬрд╛рджреВ рд╣реИред Wasm "рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рддреЗрдЬрд╝" рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╕рд░рд▓ рднрд╛рд╖рд╛ рд╣реИ рдЬреЛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЗ рдмрд╣реБрдд рдХрд░реАрдм рд╣реИред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рдЬрдЯрд┐рд▓ рднрд╛рд╖рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдХрдИ рдорд╣рдВрдЧреЗ рдХрд╛рдо рдХрд░рдиреЗ рдкрдбрд╝рддреЗ рд╣реИрдВред рдпрд╣ рд╕реАрдзреЗ рдХреЗ рдмрдЬрд╛рдп рд╡рд╛рд╕рдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕реЗ рдореВрд▓ рдХреЛрдб рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдХреЗ рдЬрд╛рджреБрдИ рд░реВрдк рд╕реЗ рддреЗрдЬрд╝ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

@ganeshkbhat рд╡рд░реНрддрдорд╛рди рдореЗрдВ, asm.js / webassembly рдХреЗ рдЕрдВрджрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред asm.js рдФрд░ webassembly рдореЗрдВ, рд╕рднреА JavaScript рдСрдкрд░реЗрд╢рдВрд╕ рд╡рд╣рд╛рдВ рдорд╛рдиреЛрдВ рдХреЛ рд╕реНрдЯреЛрд░ рдФрд░ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝реЗ рдЯрд╛рдЗрдкреЗрдбрд░реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ (рдЬреИрд╕реЗ var obj = {a: 1, b: 'test'} ) рдФрд░ рд╕рд░рдгрд┐рдпрд╛рдБ (рдЬреИрд╕реЗ var a = []; ) рдмрдирд╛рдирд╛ рд╡реЗрдм рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рдЕрдВрджрд░ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЕрднреА рддрдХ рдХреЛрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╕рднреА рдкреНрд░рдореБрдЦ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдпрдерд╛рд╢реАрдШреНрд░ рд╡реЗрдм рдЕрд╕реЗрдВрдмрд▓реА рд╕рдорд░реНрдерди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдП рдЧрдП рдиреНрдпреВрдирддрдо рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рдЙрддреНрдкрд╛рдж рдХрд╛ рдПрдХ рдбрд┐рдЬрд╝рд╛рдЗрди рдирд┐рд░реНрдгрдп рд╣реИред

рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, webassembly рдХреЗ рд▓рд┐рдП GC рд╕рдорд░реНрдерди рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИред рд╣рдо ( LeaningTech.com рдбреЗрд╡рд▓рдкрд░реНрд╕) рд╡реЗрдм рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рдкреЛрд░реНрдЯ рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╕рднреА рдкреНрд░рдореБрдЦ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдПрдХ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧреЗрдЧрд╛ред рддрдм рддрдХ, JavaScript (рдФрд░ CoffeeScript, TypeScript, рдЖрджрд┐) рдХреЛ webassembly рдореЗрдВ рдЯреНрд░рд╛рдВрд╕рдкрд╛рдЗрд▓ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рдЬрдм рдкреНрд░рд╕реНрддрд╛рд╡ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдПрдХ рд╕рднреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред

рдЬрд╝рд░реВрд░ред рдпрд╣рд╛рдВ рдЬреЗрдПрд╕ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╕рдорд░реНрдерди рдХреА рдЙрдореНрдореАрдж рдХрд░реЗрдВред рдореБрдЭреЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓рд░ рд▓рд┐рдЦрдирд╛ рд╡рд╣ рд╣реИ рдЬреЛ рд╕рд╣рд╛рдпрдХ рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВрдиреЗ webassembly рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреЛ рдкрдврд╝рд╛ рд╣реИ, рд╡рд╣ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЙрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ js -> webassembly рд╕рдВрдХрд▓рдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рдЖрдХрд░реНрд╖рдХ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рдЧреИрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ webassembly рдЪрд▓рд╛рдиреЗ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдЪ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореЗрдВ рднреА рдиреЛрдбрдЬ рдореЗрдВ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдиреЛрдбрдЬ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╡рд░реНрдЯреЗрдХреНрд╕ - рдкреЙрд▓реАрдЧреНрд▓реЙрдЯ рдЬреИрд╕реЗ рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЗрдЬрд╛рдЬрдд рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╡реЗрдмрд╕реИрдореНрдк рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдХрд┐ рдРрд╕рд╛ рдХреБрдЫ рдХрд░рдирд╛ рдмреЗрд╣рдж рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛ред рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреАрд╕реА, рд╢рд╛рдпрдж рдХрд┐рд╕реА рддрд░рд╣ рдХреЗ рд╡реАрдПрдо рдЬреИрд╕реА рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА рдЕрд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЛ asm.js рдкрд░ рднреА рд╕рдВрджреЗрд╣ рдерд╛ рдФрд░ рдЖрдЬ рдЗрд╕реЗ рджреЗрдЦреЗрдВред

рдЙрди рд╕рднреА рдХреЗ рд▓рд┐рдП, рдЬреЛ (рдореЗрд░реЗ рд░реВрдк рдореЗрдВ) js -> webassembly рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрддреНрд╕рд╛рд╣рд┐рдд рд╣реИрдВ, рднрд╡рд┐рд╖реНрдп рдореЗрдВ ts2c рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ js -> c -> webassembly рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рдФрд░ рдмрд╣реБрдд рдКрдмрдбрд╝-рдЦрд╛рдмрдбрд╝ рддрд░реАрдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

@mauron85 рдЧреИрд░-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ рдЧреИрд░-рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░рдирдЯрд╛рдЗрдо рд╡рд╛рддрд╛рд╡рд░рдг рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд╛ рдПрдХ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдЖрдЬ рдХреЗрд╡рд▓ JS API рдореМрдЬреВрдж рд╣реИред

рдЕрдкрдиреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдПрдХ .NET JIT рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рд╕рдордп рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдмрд╛рдзрд╛ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣реА рд╣реИ, рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЕрдиреНрдп рд▓реЛрдЧ рднреА WASM рдХреЛ рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЕрдм рд╕реЗ рдХреБрдЫ рд╕рд╛рд▓ рдмрд╛рдж WebAssembly рдХреЗ рд▓рд┐рдП рдЙрдЪреНрдЪ-рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ рдЧреИрд░-JavaScript рд░рдирдЯрд╛рдЗрдо рд╣реЛрдВрдЧреЗ, рдПрдХрдорд╛рддреНрд░ рдЦреБрд▓рд╛ рдкреНрд░рд╢реНрди рд╡рд╣ рдбрд┐рдЧреНрд░реА рд╣реИ рдЬрд┐рд╕ рддрдХ рдЙрдиреНрд╣реЗрдВ WebAssembly рдЯреАрдо рджреНрд╡рд╛рд░рд╛ рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдорд░реНрдерди рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЖрдИрдПрдордУ JavaScript -> WebAssembly рд╕рдВрдХрд▓рди рдХреНрд╖рдорддрд╛ рдХрд╛ рдПрдХ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕/рд░рдЦрд░рдЦрд╛рд╡ рд╢рд╛рдпрдж рдЕрдкрдиреЗ рдПрдкреАрдЖрдИ рдХреЛ рджреЛ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдореЗрдВ рдЬрд╛рд░реА рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ:

  1. JS рдореЗрдВ (рдЬреИрд╕рд╛ рдХрд┐ рдЕрднреА рд╣реИ) рдЬрд┐рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ рдиреЛрдб рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
  2. WASM рд╕рдВрдХрд▓рд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдФрд░ рдпрд╣ рд╕реА/рд╕реА++ рдореЗрдВ рдЕрдкрдиреЗ рдореМрдЬреВрджрд╛ рдЬреЗрдПрд╕ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд┐рдирд╛ рд╣реИ, рдЕрдЧрд░ рд╡реЗ рдЕрдкрдиреЗ рдЬреЗрдПрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдбрдмреНрд▓реНрдпреВрдПрдПрд╕рдПрдо рдХреЗ рдкреНрд░рджрд░реНрд╢рди рд▓рд╛рднреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рддреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрднреА рднреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдФрд░ рдмрдирд╛рдП рд░рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ рдФрд░ рдЬреЗрдПрд╕ рдФрд░ рдбрдмреНрд▓реНрдпреВрдПрдПрд╕рдПрдо рджреЛрдиреЛрдВ рдореЗрдВ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рджреЛ рдЖрдЙрдЯрдкреБрдЯ рддреИрдпрд╛рд░ рдХрд░реЗрдВрдЧреЗред

рдФрд░ рд╕рдВрдХрд▓рд┐рдд WASM рд╕рдВрд╕реНрдХрд░рдг рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реЗ рдЙрдЬрд╛рдЧрд░ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рд╡реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдпрд╣ WASM рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрдЧрд╛ред

WASM рд╕рдВрдХрд▓рд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

рдХреНрдпреЛрдВ? рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдПрдХ рдмреНрд▓реЙрдм рд╡реЗрдм рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓реНрдб рдХреНрдпреЛрдВ рдХрд░реЗрдЧрд╛ (рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдкрд░рд┐рджреГрд╢реНрдп, рдЙрд╕ рдмрд╛рдЗрдирд░реА рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрди рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрд╛рдВрд╢ рд░рдирдЯрд╛рдЗрдо рд╕рд╣рд┐рдд; рд╕рд░реНрд╡реЛрддреНрддрдо рд╕реНрдерд┐рддрд┐ рдкрд░рд┐рджреГрд╢реНрдп, рдЬрд┐рд╕рдореЗрдВ рднрд╡рд┐рд╖реНрдп рдХреЗ рдмрд┐рд▓реНрдЯрд┐рди рд╡рд╛рд╕ рдЬреАрд╕реА рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдмрдирд╛рдИ рдЧрдИ рдкрд░рдд рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬреЛ рд╡реИрд╕реЗ рднреА рдЕрдкрдирд╛ рдУрд╡рд░рд╣реЗрдб рд▓реЗрддрд╛ рд╣реИ ) рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рдПрдХ рдЬрд┐рдЯ рдкрд░ рдлреЗрдВрдХреЗ рдЧрдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рддреЗрдЬ рджреМрдбрд╝реЗрдВ ... рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ?

рдареАрдХ рд╣реИ, рдЖрдкрдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЕрдзрд┐рдХ рдУрд╡рд░рд╣реЗрдб рдХреЗ рд╕рд╛рде рдФрд░ рднреА рдзреАрдорд╛ рд╣реЛрдЧрд╛?

рд╢рд╛рдпрдж рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛ред C/C++/Rust -> WebAssembly рд╕рдВрдХрд▓рд┐рдд рд╕рд╛рдордЧреНрд░реА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреИрд╕реЗ рдХреБрд╢рд▓ рд╣реИ рдФрд░ рднрд▓реЗ рд╣реА рднрд╡рд┐рд╖реНрдп рдореЗрдВ JS -> WASM рд╕рдорд░реНрдерди рд╣реЛ рдЬреЛ рдУрд╡рд░рд╣реЗрдб рдХрд╛ рдХрд╛рд░рдг рдмрдиреЗ? рдХреНрдпрд╛ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЬреЗрдПрд╕ рдПрдХ рдЧрддрд┐рд╢реАрд▓ рднрд╛рд╖рд╛ рд╣реИ рдФрд░ рд╕реА, рд╕реА ++, рдФрд░ рдЬрдВрдЧ рдирд╣реАрдВ рд╣реИрдВ? рдпрд╛ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЬреЗрдПрд╕ рд╕реНрд╡рднрд╛рд╡ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рднрд╛рд╖рд╛ рдирд╣реАрдВ рд╣реИ рдмрд▓реНрдХрд┐ рдпреЗ рдЕрдиреНрдп рднрд╛рд╖рд╛рдПрдВ рд╣реИрдВ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЬреЗрдПрд╕ рд╕реЗ рдбрдмреНрд▓реНрдпреВрдПрдПрд╕рдПрдо рд╕рдВрдХрд▓рди рдирд┐рд░рдВрддрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрдЧрд╛; рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдмрд╛рдЗрдирд░реА рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЗ рдХрд╛рд░рдг рдХреЛрдб рдЖрдХрд╛рд░ рдФрд░ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд╕рдордп рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЕрднреА рднреА рдЙрдкрдпреЛрдЧреА рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╕рд┐рд░реНрдл JS рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рдЗрдирд░реА рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЕрднреА рдХреЗ рд▓рд┐рдП рд▓реАрдирд┐рдпрд░ рдореЗрдореЛрд░реА рдЖрджрд┐ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╕рд░рд▓ рдФрд░ рдкреЙрд▓реАрдлрд┐рд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИред

@kabirbaidhya JS -> WASM рдХреЗ рд╕рд╛рде рдЕрднреА рдореБрдЦреНрдп рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕рдХреЗ рдЕрдВрджрд░ рдПрдХ рдХреБрд╢рд▓ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗ рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдЯреИрдХ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреМрди рд╕реА рд╡рд╕реНрддреБрдПрдВ рдЬреАрд╡рд┐рдд рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд░реИрдЦрд┐рдХ рд╕реНрдореГрддрд┐ (рдвреЗрд░) рдореЗрдВ рд╕рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рдВрджрд░реНрднреЛрдВ рдХреА рдПрдХ рдкреНрд░рддрд┐ рд░рдЦрдиреА рд╣реЛрдЧреА рдФрд░ рдЗрд╕реЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЧрдВрднреАрд░ рд░реВрдк рд╕реЗ рдЕрдкрдорд╛рдирдЬрдирдХ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдореЗрдВ рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА рдорд▓реНрдЯреА-рдереНрд░реЗрдбрд┐рдВрдЧ рдХрд╛ рднреА рдЕрднрд╛рд╡ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреГрд╖реНрдарднреВрдорд┐ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдЕрд╕рдВрднрд╡ рд╣реИред WASM рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреВрд░ рдХрд░рддреЗ рд╣реБрдП, рд╣реЛрд╕реНрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рдЗрдВрдЬрди рдореЗрдВ рдЯреИрдк рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред

JS -> WASM рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдкреНрд░рдореБрдЦ рдмрд╛рдзрд╛ рдпрд╣ рддрдереНрдп рд╣реИ рдХрд┐ рд▓рдЧрднрдЧ рд╕рднреА рд╡рд╕реНрддреБрдПрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧрддрд┐рд╢реАрд▓ рд╣реИрдВред WASM рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рд╕реНрдерд┐рд░ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдорд╛рдирдХ JS рдкреНрд░рджрд░реНрд╢рди рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдЯрд┐рд▓ рдорд╛рдирдЪрд┐рддреНрд░рдг рдкрд░рддреЛрдВ, рдЕрдиреБрдХрд░рдг рдФрд░ рдЧрддрд┐рд╢реАрд▓ рдХреЛрдб рдкреАрдврд╝реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрд╕рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдПрдХ рд╕рдЦреНрдд рдЙрдкрд╕рдореБрдЪреНрдЪрдп рдХреБрдЫ рд╣рдж рддрдХ WASM рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред

рд╕реА/рд╕реА++ рдбрдмреНрд▓реВрдПрдПрд╕рдПрдо рдХреА рдкрд╣рд▓реА рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдбрдмреНрд▓реНрдпреВрдПрдПрд╕рдПрдо рдХреА рд╕реАрдорд╛рдПрдВ рджреЗрд╢реА рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕реАрдорд╛рдУрдВ рдХреЗ рд╕рд╛рде рдирд┐рдХрдЯрддрд╛ рд╕реЗ рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рд╕реА/рд╕реА++ рд▓рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

FWIW рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╢рд╛рдирджрд╛рд░ рд╕реНрд▓рд╛рдЗрдбрдбреЗрдХ рд╣реИ рдХрд┐ рдХреИрд╕реЗ V8 рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдВрдХрдЧрдгрд┐рдд рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ: https://docs.google.com/presentation/d/1wZVIqJMODGFYggueQySdiA3tUYuHNMcyp_PndgXsO1Y/edit

tl; dr рдпрд╣ рд╕рд┐рд░реНрдл _one_ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрд╣рд╛рдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдЙрд╕рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИ рдЬрд┐рддрдирд╛ рдХрд┐ рдпрд╣ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реНрдердХ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореВрд▓ VM рдПрдХ рдмреЗрд╣рддрд░, рддреЗрдЬ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдФрд░ рд╕рдВрднрд╡рддрдГ рд╣реЛрдЧрд╛) рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореВрд▓ рд╣реИ рдФрд░ рдЗрд╕рдХреА рдкрд╣реБрдВрдЪ рд╣реИ рд╕рдВрд╕рд╛рдзрди рдФрд░ рдПрдкреАрдЖрдИ рдХрднреА рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ - рдФрд░ (рд╢рд╛рдпрдж) рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рд╡рд░реНрд╖ред

рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ JS/рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ _subset_ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреНрд░рд╕рд╛рд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛, рдЬреИрд╕реЗ ThinScript , TurboScript , рдЖрджрд┐ред рд╡реЗ рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рд▓рдЧреЗрдВрдЧреЗ ред

рдореБрдЭреЗ рдЕрдм рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпреЗ рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреЗ рдкреНрд░рд╢реНрди рд╣реИрдВ, рдФрд░ рдкреВрдЫрдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╣рдо рд╕рднреА WebAssembly--рд╕рд╛рде рд╣реА рдЧреИрд░-рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдФрд░ рднрд╡рд┐рд╖реНрдп рдХреЛ рд╕рдордЭреЗрдВред

6 рдЕрдкреНрд░реИрд▓ 2017 рдХреЛ 00:36 рдмрдЬреЗ, рд░рдпрд╛рди рд▓реИрдорд╛рдВрд╕реНрдХреА рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

JS рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдкреНрд░рдореБрдЦ рдмрд╛рдзрд╛ -> WASM рдпрд╣ рддрдереНрдп рд╣реИ рдХрд┐ рд▓рдЧрднрдЧ рд╕рднреА рд╡рд╕реНрддреБрдПрдВ
рдкреВрд░реНрдгрддрдГ рдЧрддрд┐рд╢реАрд▓ рд╣реИрдВред WASM рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рд╣реЛрдЧрд╛
рд╕реНрдереИрддрд┐рдХ, рдЗрддрдиреА рдЬрдЯрд┐рд▓ рдорд╛рдирдЪрд┐рддреНрд░рдг рдкрд░рддреЗрдВ, рдЕрдиреБрдХрд░рдг, рдФрд░ рдЧрддрд┐рд╢реАрд▓ рдХреЛрдб рдкреАрдврд╝реА
рдорд╛рдирдХ рдЬреЗрдПрд╕ рдкреНрд░рджрд░реНрд╢рди рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ,
рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрд╕рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдПрдХ рд╕рдЦреНрдд рдЙрдкрд╕рдореБрдЪреНрдЪрдп рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдХреБрдЫ рд╣рдж рддрдХ WASM рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░реЗрдВред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ
рдЗрд╕реЗ рдмрдирд╛рдУред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рд╕рдореЗрдЯрдиреЗ рдХреЗ рд▓рд┐рдП
рдЬреЗрдПрд╕ рд╡рд┐рд░рд╛рд╕рдд, рдЗрд╕рдХреА рдкреНрд░рдХрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рдЗрддрдиреА рдЧрд╣рд░реА рдФрд░ рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдЕрд╕реНрд╡рд╕реНрде рд╣реИ рдХрд┐
рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдк "рд╕рдЦреНрдд" рд╕рдмрд╕реЗрдЯ рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдРрд╕рд╛ рдЙрдкрд╕рдореБрдЪреНрдЪрдп
рдЯреАрдПрд╕ рдХреА рдЙрдк-рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреА рдХрд┐рд╕реА рднреА рдзрд╛рд░рдгрд╛ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕реЗ рд╕реБрдВрджрд░ рдмрдирд╛ рджреЗрдЧрд╛
рдЕрдкрдиреЗ рдбреЛрдореЗрди рдореЗрдВ рдмрд╣реБрдд рдмреЗрдХрд╛рд░ред

рдЕрдЪреНрдЫреЗ рд╢реЛрдз рдкрддреНрд░ рдЖрдП рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ SafeTypeScript рдкрд░, рд▓реЗрдХрд┐рди рдирд╣реАрдВ
рдХреЗрд╡рд▓ рд╡реЗ рдЕрдзрд┐рдХ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рднреА рдкрд░реНрдпрд╛рдкреНрдд рдорд╛рддреНрд░рд╛ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ
рдорд╣рдВрдЧрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд░рдирдЯрд╛рдЗрдо рдмрд╣реАрдЦрд╛рддрд╛ рдкрджреНрдзрддрд┐ рдФрд░ рдЬрд╛рдБрдЪ, рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЛ рд╣рд░рд╛рдирд╛
рдЪрд░реНрдЪрд╛ (рдФрд░ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ JS/TS рд╕реЗ рднрд┐рдиреНрди рднрд╛рд╖рд╛ рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ)ред

рд╢рд╛рдпрдж рдореБрдЭреЗ рдХреБрдЫ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди WebAssembly рдХреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЬреЗрдПрд╕ рдХреЗ рдкрд╛рд░реНрд╕ рд╕рдордп рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ рдПрдПрд╕рдЯреА рд▓реЛрдб рдХрд░рдирд╛ рд╣реИ, рд╣реИ рдирд╛?

рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ рдЬреЗрдПрд╕ рдХреЛ рдЗрд╕ рдПрд╕реНрдЯ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдХреНрдпрд╛ рдЗрд╕реЗ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рд╕реЗ рдмрдЪрдиреЗ рд╕реЗ рд▓рд╛рдн рдирд╣реАрдВ рд╣реЛрдЧрд╛?

@agnivade , рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ, рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдПрд╕рдЯреА рд╣реИред

рдпрджрд┐ рдЖрдк JS рдХреЛ Wasm рдСрдлрд╝рд▓рд╛рдЗрди рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рд╛рдБ, рдЖрдкрдХреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб (рдмрд╕ рдбрд┐рдХреЛрдб) рдкрд░ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред рд╕рд╛рде рд╣реА, рдХреНрдпреЛрдВрдХрд┐ рдЬреЗрдПрд╕ рдЗрддрдирд╛ рдЬрдЯрд┐рд▓ рд╣реИ, рдХреЛрдб рдЖрдХрд╛рд░ рдореЗрдВ рдХрд╛рдлреА рд╡реГрджреНрдзрд┐ рд╣реЛрдЧреА, рд╢рд╛рдпрдж 5 рдпрд╛ рдЕрдзрд┐рдХ рдХреЗ рдХрд╛рд░рдХ рд╕реЗ, рдЬреЛ рдХрд┐ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд▓рд╛рдЧрдд рд╣реИред (рдФрд░ рдпрд╣ рднреА рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╢рд╛рдпрдж рд╡рд╛рд╕рдо рдореЗрдВ рдЬреЗрдПрд╕ рд╡реАрдПрдо рд░рдирдЯрд╛рдЗрдо рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рдВрдкреВрд░реНрдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рднреА рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдХреЛрдб рд╣реИред)

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реНрд░реЛрддреЛрдВ рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рдмрд┐рдирд╛ рдЖрдк рдЕрдзрд┐рдХрд╛рдВрд╢ рдЧрддрд┐рд╢реАрд▓ рдЕрдиреБрдХреВрд▓рди рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЬреЗрдПрд╕ рдХреЛ рдХрд╣реАрдВ рднреА рддреЗрдЬреА рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВред рдпреЗ рдЕрдиреБрдХреВрд▓рди рдореВрд▓ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдФрд░ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕реЗ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рджреЗрдиреЗ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВред рдкрд╣рд▓реЗ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рд╡рд╛рд╕рдо рдПрдПрд╕рдЯреА рдЗрд╕реЗ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдореВрд▓ рд╕реНрд░реЛрдд рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдПрдПрд╕рдЯреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

@ рд░реЙрд╕рдмрд░реНрдЧ-рдХреНрд░реЛрдорд┐рдпрдо - рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рдмрд╣реБрдд рдХреБрдЫ рд╕рд╛рдл рдХрд░рддрд╛ рд╣реИ! рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХ рд╢рдХ -

рдФрд░ рдпрд╣ рднреА рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╢рд╛рдпрдж рд╡рд╛рд╕рдо рдореЗрдВ рдЬреЗрдПрд╕ рд╡реАрдПрдо рд░рдирдЯрд╛рдЗрдо рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рдВрдкреВрд░реНрдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рднреА рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдХреЛрдб рд╣реИ

рдЖрдкрдХреЛ VM рд░рдирдЯрд╛рдЗрдо рд╕рд┐рд╕реНрдЯрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реЛрдЧреА? рдХреНрдпрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╣реА VM рд░рдирдЯрд╛рдЗрдо рдирд╣реАрдВ рд╣реИ? рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреЛрдб рдПрдПрд╕рдЯреА рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╣реЛ рддрд╛рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХреЗред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╢реБрджреНрдз рдЖрдХрд╛рд░ рдмрдврд╝реЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рднрд╛рд╖рд╛ рд╣реА рдЬрдЯрд┐рд▓ рд╣реИ, рдФрд░ рд╣рдо рдЧрддрд┐рд╢реАрд▓ рдЕрдиреБрдХреВрд▓рди рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╣рдореЗрдВ VM рд░рдирдЯрд╛рдЗрдо рдХреЛ рд╣реА рдмрдВрдбрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ, рдЬрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрд╕рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╣реИ?

@agnivade , рдЧрддрд┐рд╢реАрд▓ рдЕрдиреБрдХреВрд▓рди рдХреЗ рдмрд┐рдирд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдзреАрдорд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ _really_ рдзреАрдорд╛, рдЬреИрд╕реЗ 100x рдзреАрдорд╛, рд╢рд╛рдпрдж рдмрджрддрд░ред

"рд░рдирдЯрд╛рдЗрдо" рд╕реЗ рдореЗрд░рд╛ рдорддрд▓рдм рдбреАрдУрдПрдо рдЬреИрд╕реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рд╛рдордЧреНрд░реА рд╕реЗ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдирдВрдЧреЗ рдЬреЗрдПрд╕ рднрд╛рд╖рд╛ рд╕рдорд░реНрдерди, рдпрд╛рдиреА рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛, рд╡рд╕реНрддреБ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡, рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡ рдФрд░ рдмреЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЗрддреНрдпрд╛рджрд┐ рдЬреИрд╕реА рдЪреАрдЬреЗрдВред рдпрд╣ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реИ, рдФрд░ рдЖрдк рдХрд░реЗрдВрдЧреЗ Wasm рдХреЗ рдЕрдВрджрд░ рдЗрди рд╕рднреА рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЖрдкрдХреЛ рдбреАрдУрдПрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд░рдд рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдареАрдХ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЕрдм рдЪреАрдЬреЛрдВ рдХреЛ рдереЛрдбрд╝рд╛ рдмреЗрд╣рддрд░ рд╕рдордЭрддрд╛ рд╣реВрдВред рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐

рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛, рд╡рд╕реНрддреБ рдЕрднреНрдпрд╛рд╡реЗрджрди, рдЖрджрд┐рдо рдФрд░ рдЖрдзрд╛рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп, рдЖрджрд┐ред

рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ рд╣реА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдореИрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдПрдПрд╕рдЯреА рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдЕрдкрдирд╛ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рдо рдХрд░рдиреЗ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдЕрдм рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ WASM рдХреЗ рдЕрдВрджрд░ рд╣реА рд╕рдм рдХреБрдЫ рдкреИрдХ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ-рдИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ рдмрд╛рдЗрдЯрдХреЛрдб рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛! рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдк рдХреА рдЧрдИ, рдХрдЪрд░рд╛ рдПрдХрддреНрд░рд┐рдд рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкрд░рд┐рд╡рд╣рди рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдПрдХ рд╕рдВрдХрд▓рд┐рдд рд▓рдХреНрд╖реНрдп, рд▓реЛрдХрдкреНрд░рд┐рдп рд▓реЛрдЧреЛрдВ (рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рд░реВрдмреА, рдкрд╛рдпрдерди, рд▓реБрдЖ) рдХреЗ рд╕рднреА рд╡рд┐рдЪрд┐рддреНрд░ рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд╕рд╛рде (рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ) рд╡рд┐рд╢реЗрд╖ рдСрдкрдХреЛрдб рдФрд░ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдЖрджрд┐ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

@distransient , рддреЛ рдЖрдк рд╕рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреА

рдЬреЛ LLVM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ WebAssembly рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред рдЗрд╕ рдкрд╣реБрдВрдЪ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рджреЗрдЦреЗрдВред https://github.com/MichaReiser/speedy.js
рд▓рдЧрддрд╛ рд╣реИ рдпреЗ рдЪрд░реНрдЪрд╛ рдХрднреА рдЦрддреНрдо рдирд╣реАрдВ рд╣реЛрдЧреА...

@ рд░реЙрд╕рдмрд░реНрдЧ-рдХреНрд░реЛрдорд┐рдпрдо рдореИрдВрдиреЗ рдХрд╣рд╛ рдХрд┐ рдпрд╣ "рджрд┐рд▓рдЪрд╕реНрдк" рд╣реЛрдЧрд╛, рдЖрд╕рд╛рди рдпрд╛ рд╕реБрдВрджрд░ рдирд╣реАрдВ

рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ-рдИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ рдмрд╛рдЗрдЯрдХреЛрдб рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ ...

рдЬрдмрдХрд┐ WASM рдЕрдВрддрддрдГ рдкрд╛рдпрдерди рдЬреИрд╕реЗ рд╕рд╛рдорд╛рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ, рд╣рдо рд╡реЗрдм рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдХрд╛ рд╕рдорд░реНрдерди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, WASM рдЗрд╕реЗ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЕрдЧрд░ рд╣рдо рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╡рд┐рдкрд░реАрдд рдЫреЛрд░ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реИрдВред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдПрд╕рдЯреА рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЙрдирдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд░рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЧрдП рдПрдПрд╕рдЯреА рдХреЛ рдорд╛рдирдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рднрд▓реЗ рд╣реА рд╡реЗ рддреБрд░рдВрдд рдПрдХ рдЧреИрд░-рдорд╛рдирдХ, рдордзреНрдпрд╡рд░реНрддреА рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рдПрдВ)ред

рд╣рдо рдПрдХ рдирдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рд░реВрдк рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рдПрдХ рдПрдПрд╕рдЯреА рдкреНрд░рд╛рд░реВрдк (рдЬреИрд╕реЗ estree ) рдФрд░ рдПрдХ рдХреНрд░рдорд╛рдВрдХрди рдкреНрд░рд╛рд░реВрдк (рдЬреИрд╕реЗ JSON) рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреИрдЧ рдЖрджрд┐ рдореЗрдВ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдХреЙрдлрд╝реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреИрд╕реА рднрд╛рд╖рд╛рдПрдВ рдХреЗрд╡рд▓ рдкреЗрдбрд╝реЛрдВ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рд╣реЛрдВрдЧреА, рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЗрд╕реЗ рд╡рд╣рд╛рдВ рд╕реЗ рд▓реЗ рдЬрд╛рдПрдЧрд╛ред рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓реНрдб рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдХреЛрдб рдЬрдирд░реЗрд╢рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА, рдФрд░ рд╕реНрд░реЛрдд рдорд╛рдирдЪрд┐рддреНрд░реЛрдВ рдХреА рднреА рдЕрдм рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рд╢рд╛рдмреНрджрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрд░реЛрдд рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрдЧреАред

рдПрдХ рдмрд╛рд░ рдмреБрдирд┐рдпрд╛рджреА рд╕рдорд░реНрдерди рд╕реНрдерд╛рдкрд┐рдд рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдореВрд▓ рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ рдирдП рдиреЛрдб рдкреНрд░рдХрд╛рд░ рдЬреЛрдбрд╝рдХрд░, рдорд╛рдирдХ рдмреАрдЪ рдореЗрдВ WASM рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдЪреАрдЬреЗрдВ рд╣реИрдВ, рдЬреИрд╕реЗ рд╕реНрдкрд╖реНрдЯ add рдФрд░ concat рдиреЛрдбреНрд╕, рдпрд╛ рд╢рд╛рдпрдж рдирдП рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдЬреЛрдбрд╝рдирд╛, рдЬреИрд╕реЗ DEC64ред

рдЬреИрд╕рд╛ рдХрд┐ WASM GC рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░, рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, AST рдирд┐рд╖реНрдкрд╛рджрди рдиреАрдЪреЗ рдХреА рдУрд░ рдмрдврд╝реЗрдЧрд╛, рдЕрдиреНрдп рдЙрдЪреНрдЪ рд╕реНрддрд░реАрдп рднрд╛рд╖рд╛рдУрдВ рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╢рдмреНрджрд╛рд░реНрде рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдПрдХ рд╡реНрдпрд╛рдкрдХ рд╕реЗрдЯ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдЕрдореВрд░реНрдд рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред

25 рдордИ 2017 рдХреЛ 02:57 рдмрдЬреЗ, рдХрд╛рд░реНрд▓ рд╕реНрдорд┐рде рдиреЗ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рд▓рд┐рдЦрд╛:
>

рдХреБрдЫ рдореБрджреНрджреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдпрд╣ рд╣реЛрдЧрд╛
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЖрдВрддрд░рд┐рдХ рд╕рдорд░реНрдерди рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд░рд▓ рд╣реИ
JavaScript ASTs рдХреЛ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ ASTs рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП
рдорд╛рдирдХреАрдХреГрдд (рднрд▓реЗ рд╣реА рдПрдПрд╕рдЯреА рддреБрд░рдВрдд рдЧреИрд░-рдорд╛рдирдХ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рдП,
рдордзреНрдпрд╡рд░реНрддреА рдкреНрд░рд╛рд░реВрдк рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ)ред

рдХреЗрд╡рд▓ рдЖрдк рдХреА рддреБрд▓рдирд╛ рдореЗрдВ "рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд░рд▓" рдХреА рдЕрдзрд┐рдХ рд╡реНрдпрд╛рдкрдХ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП
рдорди рдореЗрдВ рд╣реИ... ;)

WASM рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖, рдпрд╣ рд╕рд░рд▓ рд╣реИред

@bguiz рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

  • рдЖрдк JS рдХреЛ рдореВрд▓ рд░реВрдк рд╕реЗ ASM рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдЕрд▓рдЧ рд╣реИред
  • рдЖрдк рдПрдПрд╕рдПрдо рд╕реЗ рдбреАрдУрдПрдо рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реАрдкреАрдпреВ рдЧреНрд░рд╛рдЙрдВрдб рд▓реЗрд╡рд▓ рдкрд░ рдЗрд╕рдХреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИред

Google V8 рдЗрдВрдЬрди рдкреВрд░реЗ рд░рдирдЯрд╛рдЗрдо рдХрд╛рд░реНрдп рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕реАрдзреЗ рджреЗрд╢реА рдорд╢реАрди рдХреЛрдб рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рд╕реЗ рд╡реИрдХрд▓реНрдкрд┐рдХ WASM рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд░рдЦрдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ред

рджреВрд╕рд░реА рдУрд░, WASM рдХреЛ рдореИрдВрдбрд▓рдмреНрд░реЙрдЯ рдбреЗрдореЛ рдХреЗ рд╕рд╛рде рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдлрд┐рд░ рдЗрд╕рдореЗрдВ рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ рдПрдХрддрд╛ "рдЯреИрдВрдХ" рдбреЗрдореЛ рдХреА рд╕реБрд╡рд┐рдзрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдмрд╣реБрдд рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ ASM-> CPU (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ SSE рдбрдмрд▓ рдкрд░рд┐рд╢реБрджреНрдзрддрд╛ рдХреЗ рд╕рд╛рде) рдХреЗ рд╕рд╛рде рдбреНрд░рд╛рдЗрдВрдЧ рдкрд┐рдХреНрд╕рд▓ рдХрднреА рднреА рддреЗрдЬ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ WebGL->GPU рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рд╕рдореБрджрд╛рдп рдХрд╣рддрд╛ рд╣реИ рдХрд┐ GPU рджрд╛рдпрд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИред рддреЛ рдХреНрдпрд╛ рд╣реБрдЖ?

@ivanherczeg рд╡рд╛рд╣ ! рдпрд╣ рд╕рдореБрджрд╛рдп рдХрд╣рд╛рдВ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ GPU рдХрд▓реНрдкрдирд╛ рдореЗрдВ рдирд╣реАрдВ рд╣реИ?

@SephReed

рдЖрд░реНрдо рдФрд░ x86 рдХреЗ рдмреАрдЪ рдмрд╛рдЗрдХрд╢реЗрдб рдЕрдВрддрд░ рдХреЗ рдХрд╛рд░рдг рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддрдирд╛рд╡ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд▓рдХреНрд╖реНрдпреЛрдВ рдХрд╛ рдПрдХ рдФрд░ рд╕реЗрдЯ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рддрдирд╛рд╡ рдкреИрджрд╛ рд╣реЛрдЧрд╛: рд╕рднреА рд▓рдХреНрд╖реНрдпреЛрдВ рдкрд░ рд╕рдорд╛рди рдЕрд░реНрдерд╢рд╛рд╕реНрддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХрд░рдг рд▓рд╛рдЧрдд рдХреЗ рдХрд╛рд░рдг рдЕрдзрд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдзреАрдорд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдпрд╛ рдЕрдзрд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рд╕рднреА рдХреЛ рддреЗрдЬреА рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕рдордп (рдпрд╛ рдХрднреА) GPU рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рд▓рд╛рднрд╣реАрди рдмрдирд╛рддрд╛ рд╣реИред

-рдлрд┐рд▓реЛ

https://github.com/WebAssembly/design/issues/273#issuecomment -123094583

C# рд░рдирдЯрд╛рдЗрдо рдХреЛ wasm рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдкреВрд░реА рддрд░рд╣ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк JS рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрджрд▓ рд░рд╣рд╛ рдерд╛ред рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЖрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ рдЬреЗрдПрд╕ рдХреЛ рдмрджрд▓рдиреЗ рдФрд░ рдЬрд╛рд╡рд╛, рд╕реА # рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рд╕реА ++ рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рд╡реЗрдм рдРрдк рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрднрд░рдиреЗ рд╡рд╛рд▓реЗ рд░рдирдЯрд╛рдЗрдо рдХреА рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдмрдпрд╛рди рдХреЗ рд╕рд╛рде "рдХреЛрдб рджреЗрд╢реА рдХреЗ рдкрд╛рд╕ рддреЗрдЬреА рд╕реЗ рдЪрд▓реЗрдЧрд╛" , "рд╕рдВрдХрд▓рд┐рдд рдХреЛрдб рд╡реАрдПрдо рд╕реЗ рддреЗрдЬ рд╣реИрдВ" рдпрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рдмрд┐рдирд╛ рдХреБрдЫ рднреАред

рдореИрдВ рдЬреЛ рдХрд╣рдирд╛ рдЪрд╛рд╣ рд░рд╣рд╛ рд╣реВрдВ, рдХреГрдкрдпрд╛ рдЗрд╕ рд╡реАрдбрд┐рдпреЛ рдХреЛ рджреЗрдЦреЗрдВред

WebASM рдХреЛ JS рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рд▓реЗрдиреЗ рдХреЗ рдкреВрд░рдХ рдХреЗ рд▓рд┐рдП рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдХреА рднрд╛рд╖рд╛ рдХреА рдЬрдЧрд╣ рд▓реЗ рд░рд╣рд╛ рдерд╛ред

рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЖрдк рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рд╕рд░реНрд╡рд░ рд╕реЗ рд╡рд┐рддрд░рд┐рдд рд╡реЗрдмрдкреЗрдЬреЛрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

@Steakeye рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ :) рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдирд╛рдЯрдХ рд╣реЛрдЧрд╛ - рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж :)

рдЖрдк NectarJS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ JS рдХреЛ WebAssembly рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдбреЗрдореЛ: http://nectar-lang.com/ рдбреНрд░реЙрдкрдбрд╛рдЙрди WebAssembly рдореЗрдВ рд╕реЗ рдЪреБрдиреЗрдВ

рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, NectarJS рдбреЗрдореЛ emscripten рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЖрдк рдЗрд╕реЗ asm.js рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдерд┐рд░ рд░реВрдк рд╕реЗ рдЬреЗрдПрд╕ рдХреЛ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ - рд╕рдВрднрд╛рд╡рд┐рдд рд╕реА рдпрд╛ рдПрд▓рдПрд▓рд╡реАрдПрдо рдЖрдИрдЖрд░ - рдФрд░ рдлрд┐рд░ рдЙрд╕реЗ рдПрдореНрд╕реНрдХреНрд░рд┐рдкреНрдЯрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рддрд╛ рд╣реИред

wasm рдЖрдЙрдЯрдкреБрдЯ рднреА emscripten рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ (рдмрд╛рдЗрдирд░реА рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ 0xd wasm рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЖрдзреБрдирд┐рдХ VMs рдореЗрдВ рдирд╣реАрдВ рдЪрд▓рддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рд╕рд┐рд░реНрдл рд╡рд╛рд╕рдо рднреЗрдЬрддрд╛ рд╣реИ, рдЬреЗрдПрд╕ рдирд╣реАрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИред рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдмрд╣реБрдд рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдпрд╣ asm.js рдХреЗ рд╕рдорд╛рди рд╣реА рдХрд░ рд░рд╣рд╛ рд╣реЛ, рдмрд╕ рд╡рд╛рд╕рдо рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рдЪрд▓ рд░рд╣рд╛ emscripten рдлрд╝реНрд▓рд┐рдк рд╣реЛ рдЧрдпрд╛ред

рдбреЗрдореЛ рдореЗрдВ рдЗрдирдкреБрдЯ рдкрд░ 300 рдмрд╛рдЗрдЯ рдХреА рд╕реАрдорд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЙрдирдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рддрдирд╛ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реИ, рдЗрд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдлреАрдб рдХрд░рдирд╛ рдХрдард┐рди рд╣реИ, рдЬреЛ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕реНрдерд┐рд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рд╢реНрди рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЕрдХрд╛рджрдорд┐рдХ рд╢реЛрдз рд╕рдВрд╢рдпрд╡рд╛рдж рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВред

рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЗ рд▓рд┐рдП рдЙрдирдХрд╛ рд╕рдВрдХрд▓рд┐рдд рдбреЗрдореЛ рдмрд╕ рдореЗрд░реЗ рд▓рд┐рдП рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЧрдпрд╛

рдореИрдВ рдпрд╣рд╛рдВ @kripken рд╕рдВрд╢рдпрд╡рд╛рдж рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдЬреЗрдПрд╕ рдХреЛ рдЙрдЪрд┐рдд рд░реВрдк рд╕реЗ WebAssembly рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреЛрдИ рднреА рдЙрдкрдХрд░рдг рдЬреЛ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдХрд░рддрд╛ рд╣реИ, рд╡рд╣ рд╢рд╛рдпрдж JS рднрд╛рд╖рд╛ рдХреЗ рдХреБрдЫ рдЯреНрд░реИрдХреНрдЯреЗрдмрд▓ рд╕рдмрд╕реЗрдЯ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рдпрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдЫреЛрдбрд╝ рд░рд╣рд╛ рд╣реИред

JS рдПрдХ рдЕрддреНрдпрдВрдд рдЧрддрд┐рд╢реАрд▓ рднрд╛рд╖рд╛ рд╣реИред рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░рди-рдЯрд╛рдЗрдо рд╕рдВрдЪрд╛рд▓рди рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдФрд░ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдХреЛрдб рдХреЗ рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдЕрд╣реЗрдб-рдСрдл-рдЯрд╛рдЗрдо (рдпрд╛ рдСрдлрд▓рд╛рдЗрди) рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗрд╡рд▓ рдмрджрддрд░ рдорд╛рди рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдмрд╣реБрдд рд╣реА рдЕрдХреНрд╖рдо рдЬреЗрдиреЗрд░рд┐рдХ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдорд╛рдорд▓реЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЗрдПрд╕ рдХреЛрдб рд▓реЗрдВ:

var a = {prop1: 1};
func(a);

рдЗрд╕реЗ (рдЫрджреНрдо-рд╡рд╛рд╕ рдореЗрдВ) рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

i32.const 42
call $CreateJSValFromStrTable ;; Returns prop1
i32.const 1
call $CreateJSValFromInt
call $CreateJSObj1 ;; Consume a JS string and a JS value to make an object
call $_func

рдЕрдм, рдпрд╣ рдЙрд╕ рдЪреАрдЬрд╝ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо "рд╕рдВрдХрд▓рди" рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдПрдХ рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЛ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рдорд╛рди рд╣реИред рд╡рд╛рд╕рдо рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рдЬреЗрдПрд╕ рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЛ рдЪрд▓рд╛рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╢рд╛рдпрдж рд╣реА рдПрдХ рдкреНрд░рджрд░реНрд╢рди рдЬреАрдд рд╣реЛрдЧреАред

JS рдЗрдВрдЬрди рдЬреИрд╕реЗ V8 рдФрд░ рд╕реНрдкрд╛рдЗрдбрд░рдореЙрдиреНрдХреА JS рдХреЛрдб рдХреЛ рдЬрд╕реНрдЯ-рдЗрди-рдЯрд╛рдЗрдо рдХрдВрдкрд╛рдЗрд▓ рдХрд░рдХреЗ рдЙрддрдиреА рд╣реА рддреЗрдЬреА рд╕реЗ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред JIT рд╕рдВрдХрд▓рди рдХрд░рдХреЗ рд╡реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ JS рдХреЗ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдЯреБрдХрдбрд╝реЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЗрдЪреНрдЫрд┐рдд рд╢рдмреНрджрд╛рд░реНрде рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЙрд╕ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рддреЗрдЬрд╝ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдореЗрдВ рдХрд┐рд╕реА рднреА рдмрджрд▓рд╛рд╡ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдирд╛ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдорд╛рдиреНрдпрддрд╛рдУрдВ рдХреЛ рдЕрдорд╛рдиреНрдп рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдорд╛рдирд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдмрд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ред рдпрд╛ рд╢рд╛рдпрдж рдПрдХ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рд╣реБрдЖ рд╕рдВрд╕реНрдХрд░рдг, рдЬреЛ рд╢рд╛рдпрдж рдЧрддрд┐рд╢реАрд▓рддрд╛ рдХреЛ рдХрдо рдХрд░реЗрдЧрд╛ рдФрд░ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рдХреНрдпрд╛ "рдордЬрдмреВрдд рдореЛрдб" рдлреНрд░рдВрдЯ рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ рдкрд░ рдХреЛрдИ рдЦрдмрд░ рд╣реИ?

@ рд╕рд┐рдорд░рди-рдмреА, рд╣рдордиреЗ рдпрд╣рд╛рдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдордЬрдмреВрдд рдореЛрдб рдЫреЛрдбрд╝ рджрд┐рдпрд╛

рдЗрд╕реА рдХрд╛рд░рдг рд╕реЗ рдореБрдЭреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА "рд╕реНрдереИрддрд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрдХрд▓рд┐рдд" рдмреЛрд▓реА рдХреЛ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдореНрдореАрдж рдирд╣реАрдВ рд╣реИ - рдпрд╣ рдПрдХ рдЕрд▓рдЧ рднрд╛рд╖рд╛ рд╣реЛрдЧреА рдЬреЛ рдореМрдЬреВрджрд╛ рдХреЛрдб рдирд╣реАрдВ рдЪрд▓рд╛ рд╕рдХрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬреНрдпрд╛рджрд╛ рдмрд┐рдВрджреБ рдирд╣реАрдВ рд╣реИред

@ рд╕рд┐рдорд░рди-рдмреА: "рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдмрд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ред рдпрд╛ рд╢рд╛рдпрдж рдПрдХ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рдВрд╕реНрдХрд░рдг"

рдЙрд╕ рд╕реНрдерд╛рди рдореЗрдВ рдХреБрдЫ рдмрд╣реБрдд рд╣реА рджрд┐рд▓рдЪрд╕реНрдк рдХрд╛рдо рд╣реИ, рдЬреИрд╕реЗ рдЕрд╕реЗрдВрдмрд▓реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдПрдХ рд╕рдЦреНрдд рдЙрдкрд╕рдореБрдЪреНрдЪрдп рд╣реИ рдЬреЛ WebAssembly рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, https://github.com/AssemblyScript/assemblyscript

@rossberg : "рдореБрдЭреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА" рд╕реНрдерд┐рд░ рд░реВрдк рд╕реЗ рд╕рдВрдХрд▓рд┐рдд "рдмреЛрд▓реА рдбрд┐рдЬрд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдореНрдореАрдж рдирд╣реАрдВ рд╣реИ - рдпрд╣ рдПрдХ рдЕрд▓рдЧ рднрд╛рд╖рд╛ рд╣реЛрдЧреА рдЬреЛ рдореМрдЬреВрджрд╛ рдХреЛрдб рдирд╣реАрдВ рдЪрд▓рд╛ рд╕рдХрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬреНрдпрд╛рджрд╛ рдмрд┐рдВрджреБ рдирд╣реАрдВ рд╣реИред"

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрд╕реЗрдВрдмрд▓реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЗ рд╕рд╛рде рдмрдбрд╝реА рдХреНрд╖рдорддрд╛ рдореМрдЬреВрджрд╛ рдХреЛрдб рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ (рдореИрдВ рд╡рд╣рд╛рдВ рдЖрдкрд╕реЗ рд╕рд╣рдордд рд╣реВрдВ, рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛), рд▓реЗрдХрд┐рди рдпрд╣ рдХрд┐ рдПрдХ рджреЛрд╕реНрддрд╛рдирд╛ рдФрд░ рдкрд░рд┐рдЪрд┐рдд рднрд╛рд╖рд╛ рд╣реЛрдирд╛ рдПрдХ рдмрдбрд╝реА рдмрд╛рдд рд╣реИред

рдЕрднреА рдпрджрд┐ рдЖрдк рдПрдХ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбреЗрд╡рд▓рдкрд░ рд╣реИрдВ рдФрд░ рдЖрдк WebAssembly рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ C++ рдпрд╛ Rust рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рджреЛрдиреЛрдВ рдЕрдЪреНрдЫреА рднрд╛рд╖рд╛рдПрдВ рд╣реИрдВ рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдиреБрдХрд╕рд╛рди рднреА рд╣реИрдВред рдЙрд╕ рдкреГрд╖реНрдарднреВрдорд┐ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП, рдЕрд╕реЗрдВрдмрд▓реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреИрд╕рд╛ рдХреБрдЫ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдХрд╛ рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рдорд╛рд░реНрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдпрджрд┐ рдЕрд╕реЗрдВрдмрд▓реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдЕрд╕реЗрдВрдмрд▓реА рджреЛрдиреЛрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдмрд╣реБрдд рдЖрджрд░реНрд╢ рд╣реЛрдЧрд╛ред рдЗрди рдЕрдкрдбреЗрдЯ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рд╣реИред

рд╕рд╛рде рд╣реА, рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдЬрдм рддрдХ рдХреЛрдИ рдЗрд╕реЗ рдкрд╣рд▓реЗ рдирд╣реАрдВ рдХрд░рддрд╛, рдореИрдВ рд╢рд╛рдпрдж рдПрдХ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ -> рдЕрд╕реЗрдВрдмрд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдирд╡рд░реНрдЯрд░ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░рд╢реНрди рдкреВрдЫрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдлрд┐рд░ рд░реВрдкрд╛рдВрддрд░рдг рдХрд░рддрд╛ рд╣реИред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!

@SephReed рд╣рд╛рдБ рдпрд╣ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ WebAssembly -> asm.js рдХрдВрдкрд╛рдЗрд▓рд░ рд╣реИ , рдЬрд┐рд╕реЗ рд╕рднреА WebAssembly рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣ рднреА рджреЗрдЦреЗрдВ "рдХреНрдпрд╛ WebAssembly рдХреЛ рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?"

рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ рдмрдЬрд╛рдп "рдЕрд╕реЗрдВрдмрд▓реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдореБрд╣рд╛рд╡рд░реЗрджрд╛рд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ?", рддреЛ рдореБрдЭреЗ рдкреВрдЫрдирд╛ рд╣реЛрдЧрд╛, рдЖрдк рдРрд╕рд╛ рдХреНрдпреЛрдВ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ рдЬрдм WebAssembly / asm.js рдореБрд╣рд╛рд╡рд░реЗрджрд╛рд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рддреЗрдЬ рд╣реИрдВ?

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрд╕реЗрдВрдмрд▓реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдЪрд▓рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдкрдХреЛ рдХреБрдЫ рдмрд╛рддреЛрдВ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ ред

рдЕрд╕реЗрдВрдмрд▓реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХрд╛ рдпрд╣ рдЕрдиреБрднрд╛рдЧ рднреА рджреЗрдЦреЗрдВред

рд╕рдЬреНрдЬрдиреЛрдВ, рдХреГрдкрдпрд╛ WALT , рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреИрд╕реА WebAssembly рднрд╛рд╖рд╛ред

рдпреВрдкреАрдбреА. рдиреЗрдХреНрд░реЛрдкреЛрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ

рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЗрд╕ "рдЬреЗрдПрд╕ -> рдбрдмреНрд▓реНрдпреВрдПрдПрд╕рдПрдо" рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдорд╛рдирддреЗ рд╣реИрдВред

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЗрд╕реЗ рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рдкрд╛рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ:

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ред рдЖрдкрдХреЛ рдХреБрдЫ рдЖрдХрд╛рд░ рдореЗрдВ рдХрдореА рдорд┐рд▓ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рд╢реБрджреНрдз рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ JS рдЗрдВрдЬрди рдХреЛ wasm рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдХреГрдкрдпрд╛, рдпрд╣рд╛рдВ рдореЗрд░рд╛ рдареЛрд╕ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдХрд┐ рдпрд╣ рдХреНрдпреЛрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдФрд░ рдпрд╣ рдХреНрдпреЛрдВ рдЙрдкрдпреЛрдЧреА рд╣реИ, рдФрд░ рди рдХреЗрд╡рд▓ рдЖрдк "рдХреБрдЫ рдЖрдХрд╛рд░ рдореЗрдВ рдХрдореА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ"ред WebAssembly рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ:

<=XXX ┬л SaNdBoXeD EnViRoNmEnT ┬╗ XXX =>

WebAssembly рдХреЗрд╡рд▓ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИред рдЖрдк Figma рдЯреАрдо рд╕реЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рд▓реЗрдЦ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдкреНрд▓рдЧрдЗрди рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдирд╛ рдХрд╛рдлреА рдЪреБрдиреМрддреАрдкреВрд░реНрдг рд╣реИред рдХрд╕реНрдЯрдо рдХреЛрдб рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреБрдЫ рдЕрдЪреНрдЫреЗ рддрд░реАрдХреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдПрдХ рдЕрд▓рдЧ рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд╛рд╣рд┐рдП, рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд╛рддрд╛рд╡рд░рдгред

WebAssembly рдЖрдкрдХреЛ рд╡рд╣ рджреЗрддрд╛ рд╣реИ, - рдХреБрдЫ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░реЛрдВ рдХреА рддрд░рд╣ рдЧрдВрджрдЧреА рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╢реБрджреНрдз рд╡рд╛рддрд╛рд╡рд░рдгред рдЕрд╕реЗрдВрдмрд▓реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрд╕реЗ рдПрдХ рддрд░рд╣ рд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рддрд╛ рд╣реИ, - рдЖрдкрдХреЗ рдкрд╛рд╕ рд▓рдЧрднрдЧ рд╡рд╣реА рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╛рддрд╛рд╡рд░рдг рд╣реИ, рдЬреЛ рдЖрдкрдХреЗ рдореБрдЦреНрдп рдРрдк рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИ, рдЬреЛ рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛ рд╣реИ, "рд▓рдЧрднрдЧ рд╕рдорд╛рди":

рдХреНрдпрд╛ рдореИрдВ рдЕрдкрдиреЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдПрдирдкреАрдПрдо рд╕реЗ рдЬреЗрдПрд╕ рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдирд╣реАрдВред

рдЦреИрд░, рдпрд╣ рд╡реЙрд▓реНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрд╕реЗрдВрдмрд▓реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рдХрд▓реНрдк рд╣реИред рдпрд╣ рдореБрд╢реНрдХрд┐рд▓ рд╕реЗ JS рдЬреИрд╕рд╛ рд╣реИ, - рдпрд╣ JS рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдЯреАрдПрд╕ рдХреА рддрд░рд╣ рдЕрдзрд┐рдХ рд╣реИред рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдореМрдЬреВрджрд╛ рдЬреЗрдПрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд/рдкрд╛рд░рджрд░реНрд╢реА рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдореИрдВ рдЕрдкрдиреЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдПрдирдкреАрдПрдо рд╕реЗ рдЯреАрдПрд╕ рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдирд╣реАрдВред

рдЕрд╕реЗрдВрдмрд▓реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреАрдПрд╕ рдЬреИрд╕реА рднрд╛рд╖рд╛ рднреА рд╣реИред рдпрджрд┐ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рдХрд╛рд░реЛрдВ рд╕реЗ рдЖрдЪреНрдЫрд╛рджрд┐рдд рд╣реИ рддреЛ рдпрд╣ TS рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдХреЛрдИ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВред рдХреЛрдИ any ред рд▓реЗрдХрд┐рди рдЕрдХреНрд╕рд░ рд▓реЛрдЧреЛрдВ рдХреЗ рдкрд╛рд╕ рдЙрдирдХреЗ рдХреЙрдиреНрдлрд┐рдЧ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдЦреНрдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ рдпрд╛ рдЙрдирдХреЗ рдкрд╛рд╕ рдХреБрдЫ @ts-ignore , рдпрд╛ рдЗрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ рдмрд╛рд░, - рд╡реЗ js рдореЗрдВ рдкреИрдХреЗрдЬ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдФрд░ .d.ts рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ - рдЗрди рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЖрдк рдРрд╕реЗ рдкреИрдХреЗрдЬ рдХреЛ WASM рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

@ рдЬреЗрд░реАрдЧреНрд░реАрди рдЕрдЪреНрдЫреЗ рдЕрдВрдХ, рд▓реЗрдХрд┐рди рдЪреАрдЬреЛрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдкрдХреНрд╖ рдкрд░, рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдмрдбрд╝реА рдЧрд▓рдд рдзрд╛рд░рдгрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдмрд╛рдЗрдЯреНрд╕ рдХреЛ рдмрдЪрд╛рдиреЗ рд╕реЗ рдкрд░реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рджрд░реНрд╢рди рд▓рд╛рдн рдирд╣реАрдВ рд╣реИрдВред рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд╕рд╣рд┐рдд рд▓реЛрдЧ, рд░рдирдЯрд╛рдЗрдо рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдкреНрд░рддрд┐ рдЗрддрдиреЗ рдЬреБрдиреВрдиреА рд╣реИрдВред рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдХрд┐рддрдиреА рддреЗрдЬреА рд╕реЗ 3D рдЧреЗрдо рдЪрд▓рд╛рддрд╛ рд╣реИ?

рдлрд┐рд░ рднреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХрд╛ рдЕрд╡рд╕рд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╣реИ , рдЬреЛ рд▓рдЧрднрдЧ рд╕рднреА рд╡реЗрдмрд╕рд╛рдЗрдЯреЛрдВ рдХреЛ рд▓рд╛рднрд╛рдиреНрд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдХреБрдЫ рд▓реЛрдЧ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рдкреНрд░рддреАрдд рд╣реЛрддреЗ рд╣реИрдВ рдХрд┐ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордп (рдкреНрд░рддрд┐ рдмрд╛рдЗрдЯ) рдореЗрдВ WebAssembly рдХрд╛рдлреА рддреЗрдЬ рдХреИрд╕реЗ рд╣реИ, рдХрд┐рд╕реА рднреА рд░рдирдЯрд╛рдЗрдо рд▓рд╛рдн рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреИрд╕реЗ рдкрд╛рдареНрдп рд╕рд╛рдордЧреНрд░реА рдкрд░ gzip рдХрд╛ рдкреАрдПрд▓рдЯреА рдкрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдкрд░ рдмрд╣реБрдд рдХрдо рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рддрд╛ рд╣реИ - рдпрд╣ рд╕рдВрдХрд▓рд┐рдд рдХреЛрдб рдХрд╛ рдЖрдХрд╛рд░ рд╣реИ рдЬреЛ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИред

рд╡рд┐рдбрдВрдмрдирд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЙрджреНрдпреЛрдЧ рдкреАрдПрд▓рдЯреА (рдкреЗрдЬ рд▓реЛрдб рдЯрд╛рдЗрдореНрд╕), рдФрд░ рд╡рд┐рднрд┐рдиреНрди рджреГрд╢реНрдп рдкреВрд░реНрдг рдорд╛рд░реНрдХрд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреБрдиреВрдиреА рд╣реИ, рдлрд┐рд░ рднреА рдХреЛрдИ рднреА WebAssembly рдФрд░ рдЗрди рд╡реИрдХреНрдЯрд░ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдирд╣реАрдВ рджреЗрдЦрддрд╛ рд╣реИ? рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡реЗрдмрд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рдЗрди рдорд╣рддреНрд╡рдкреВрд░реНрдг рдШрдЯрдирд╛рдУрдВ рд╕реЗ рдкрд╣рд▓реЗ рдмрд┐рддрд╛рдП рдЧрдП 30% рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкреГрд╖реНрдареЛрдВ рдХреЗ рдЖрдХрд╛рд░ рдФрд░ рдмреИрдВрдбрд╡рд┐рдбреНрде рдХрд╛ рдкреАрдПрд▓рдЯреА рдкрд░ рд░реИрдЦрд┐рдХ рдкреНрд░рджрд░реНрд╢рди рдХрд╛рд░рдХреЛрдВ, рдЕрд░реНрдерд╛рддреН рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордп рдФрд░ рд╡рд┐рд▓рдВрдмрддрд╛ рдмрд╣реБрдд рдХрдо рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реА, рдЬреЗрдПрд╕ -> WebAssembly рдХреА рд╡реНрдпрд╡рд╣рд╛рд░реНрдпрддрд╛ рдореЗрд░реЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред

@ рдЬреЗрд░реАрдЧреНрд░реАрди рдлрд┐рдЧрдорд╛ рдХрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдмрд╣реБрдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдорд▓рд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрдИрдлреНрд░реЗрдо рдпрд╛ рдХреНрд╖реЗрддреНрд░ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрд▓рдЧрд╛рд╡ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕реБрдВрджрд░ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдВ рдЕрд▓рдЧрд╛рд╡ рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдкреНрд░рджрд░реНрд╢рди, рдЖрдХрд╛рд░ рдФрд░ рд▓реЛрдб рд╕рдордп рдЗрддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рдЖрдк рд╣рдореЗрд╢рд╛ QuickJS рдпрд╛ JavaScriptCore рдХреЛ WebAssembly рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдк рд╡реЗрдм рд╡рд░реНрдХрд░реНрд╕ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЕрдкрдиреЗ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдХреЛрдб рд╕реЗ рдкрд╣рд▓реЗ рдХреЛрдб рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рднреА рдПрдкреАрдЖрдИ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рдХрд┐ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдХреЛрдб рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ WASM рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ @JerryGreen!

рдлреНрд░реИрдорд░реЗрдЯ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЪреАрдЬрд╝ рдореЗрдВ рддреАрди рдЬреЗрдПрд╕ рдореЗрдВ рдЧрд┐рд░рддрд╛ рд╣реИ, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╡рд╛рд╕рдо рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдХрдо рд╕реЗ рдХрдо рд╕рддрд╣ рдкрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред

JS рдХреЛ wasm рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдПрдХ рд╕рдВрдкреВрд░реНрдг рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ vm рднреА рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдкрд░рд┐рдгрд╛рдореА рдХреЛрдб рдореВрд▓ рд░реВрдк рд╕реЗ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП JS VM рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдФрд░ рдзреАрдорд╛ рд╣реЛрдЧрд╛ред

рдХреНрдпрд╛ рд╣рдо JS VMs рджреНрд╡рд╛рд░рд╛ рдкреНрд░реЛрдлрд╛рдЗрд▓-рдЧрд╛рдЗрдбреЗрдб рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдП рдЧрдП рд╕рднреА рдореЛрдиреЛрдореЛрд░реНрдлрд┐рдЬрд╝реЗрд╢рди рдЖрджрд┐ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдереЗ? рд╣рдо рдмрд╣реБрдд рдХреБрдЫ рд╡реИрд╕рд╛ рд╣реА рдХрд░реЗрдВрдЧреЗ рдЬреИрд╕рд╛ рдХрд┐ рдЬреЗрдПрд╕ рд╡реАрдПрдо рд░рдирдЯрд╛рдЗрдо рдкрд░ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗред

рдПрдХ рдкреАрдЬреАрдУ рдмрд┐рд▓реНрдб рдореЗрдВ рджреЛ рдкрд╛рд╕ рд╣реЛрддреЗ рд╣реИрдВ: рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреЗрдб рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рдкрд╛рд╕, рдлрд┐рд░ рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреЗрдб рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЛ рдЪрд▓рд╛рдиреЗ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░рд╛ рдкрд╛рд╕ред

рдкрд╣рд▓рд╛ рд░рди рд╣рдореЗрдВ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ (рдЬрд┐рди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рддрд░реНрдХреЛрдВ рдЖрджрд┐ рдХреЗ рд╕рд╛рде рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рдлрд┐рд░ рд╣рдо рд╕рднреА рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдиреБрдХреВрд▓рд┐рдд рдмрд╛рдЗрдирд░реА рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (+ рдЧреИрд░-рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЧрддрд┐рд╢реАрд▓ рддрд░реНрдХ рдХреЗ рд╕рд╛рде рд╕рд╛рдорд╛рдиреНрдп рдПрдХ) . рд╣рдореЗрдВ рдкреВрд░реЗ JS VM рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред

рдкреАрдЬреАрдУ рдХреЛ рдЖрдкрдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░реАрди рдкрд░реАрдХреНрд╖рдг рдХрд╡рд░реЗрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдпрд╣ рд╣рдореЗрд╢рд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдк v8 рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЗрдЦреЗрдВ: https://docs.google.com/document/d/1JY7pUCAk8gegyi6UkIdln6j_AeJqQucZg92advaMJY4/edit#heading =h.xgjl2srtytjt

рд╣рдордиреЗ рдЗрд╕ рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреАрдо рдХреЗ рд╕рд╛рде рдмрд╛рдд рдХреА рд╣реИ рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рд░реБрдЪрд┐ рджрд┐рдЦрд╛рдИ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЬреЗрдПрд╕ рдореЗрдВ рдЯрд╛рдЗрдк рдХреА рдЧрдИ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдкрд░ рдкреНрд░рдЧрддрд┐ рд╣реБрдИ рд╣реИред

рдкреНрд░рдХрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ

рдХреНрдпрд╛ QuickJS рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ WASM рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рд╣рд╛рдБ, Figma рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдкреНрд▓рдЧрдЗрди рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП QuickJS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ

рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ http://numcalc.com/ рдореЗрдВ рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

aaabbbcccddd00001111 picture aaabbbcccddd00001111  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Artur-A picture Artur-A  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

spidoche picture spidoche  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

void4 picture void4  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mfateev picture mfateev  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ