рдореИрдВ рдЖрдкрдХреЛ HaxeUp рд╕рддреНрд░ 2019 рд▓рд┐рдВрдЬрд╝ рд╕реЗ рдПрдХ рдФрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реВрдВ, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдкреВрд░рдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ 2019 рдореЗрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╣реЗрдХреНрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рд╡рд┐рд╖рдпрд╡рд╕реНрддреБ рдЬрд╛рд░реА рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЗрд╕рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдмрд╛рдд рдХреА рдЧрдИ рд╣реИред
рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓реЗрдЦрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛: рдСрд░реЗрд▓ рдмрд┐рд▓реА рдиреЗ рд╣реЗрдХреНрд╕ рдХреЗ рд╕рд╛рде рдореБрд▓рд╛рдХрд╛рдд рдХреА, рд╡рд┐рднрд┐рдиреНрди рдЧреЗрдо рдЬрд╛рдо рдореЗрдВ рднрд╛рдЧ рд▓рд┐рдпрд╛, рдФрд░ рд╡рд╣ рдЙрдирдореЗрдВ рднрд╛рдЧ рд▓реЗрддрд╛ рд░рд╣рд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рдЖрдЦрд┐рд░реА рд▓реБрдбрдо рдбреЗрдпрд░ 45 рд╕реЗ рдЙрд╕рдХрд╛ рдЧреЗрдо рд╣реИ )ред

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

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

рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХрд░рддреЗ рд╕рдордп, рдСрд░реЗрд▓ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕реАрдорд╛ рдкрд░ рд╕рд╣рдорддрд┐ рд╡реНрдпрдХреНрдд рдХреА рдЧрдИ рдереА (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рдм рдХреБрдЫ рдЕрдВрддрддрдГ рдПрд╣рд╕рд╛рд╕ рдирд╣реАрдВ рд╣реБрдЖ рдерд╛)ред

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

рд╕рднреА рджрд╕реНрддрд╛рд╡реЗрдЬ рдХрд╛ рдЕрдиреБрд╡рд╛рдж LaTeX рд╕реЗ Markdown рддрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ!

рджреВрд╕рд░реЗ, рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдХреЛрдб рдХрд╛ рдкреНрд░рд╛рд░реВрдкрдг рдПрдХ рд╣реА рд╢реИрд▓реА рдореЗрдВ рд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдб рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╢реИрд▓рд┐рдпреЛрдВ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдиреЗ 10 рд╡рд░реНрд╖реЛрдВ рддрдХ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рдерд╛)ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣реЗрдХреНрд╕ рд╕рдВрдХрд▓рдХ рднрдВрдбрд╛рд░ рдореЗрдВ, рдСрд░реЗрд▓ рдиреЗ рдХреЛрдб рдХреА рд▓рд╛рдЗрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕рд╛рддрд╡рд╛рдВ рд╕реНрдерд╛рди рдЬреЛрдбрд╝рд╛ :)

рддреАрд╕рд░рд╛, рдСрд░реЗрд▓ рдиреЗ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдФрд░ рд╕рдВрдХрд▓рдХ рдкрд░ рднреА рдХрд╛рдо рдХрд┐рдпрд╛:
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Map
рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдПрдХ рдирдпрд╛ clear()
рддрд░реАрдХрд╛ рд╣реИ рдЬреЛ рд╕рднреА рд╕рдВрдЧреНрд░рд╣реАрдд рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ final
рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдП рдЧрдП рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдЕрд░реНрдерд╛рдд, рдЙрдиреНрд╣реЗрдВ рдПрдХ рдирдпрд╛ рдорд╛рди рдирд╣реАрдВ рд╕реМрдВрдкрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ):

Date
рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП, рдпреВрдЯреАрд╕реА (рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╕рдордп) рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рддрд╛рд░реАрдЦреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рджрд┐рдЦрд╛рдИ рджрд┐рдП рд╣реИрдВред рдЙрди рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ Haxe рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╕рднреА 11 рднрд╛рд╖рд╛рдУрдВ / рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдХрд▓ рдПрдкреАрдЖрдИ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред

рдкреБрд░рд╛рдиреЗ рд╕рдВрдХрд▓рдХ рдореЗрдВ, рдкрд░рд┐рднрд╛рд╖рд╛рдПрдВ рдФрд░ рдореЗрдЯрд╛ рдЯреИрдЧ OCaml рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП рдереЗ, рд▓реЗрдХрд┐рди рдЕрдм рдЙрдиреНрд╣реЗрдВ JSON рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдмрд╛рд╣рд░реА рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЕрдкрдиреЗ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЛ рд╕рд░рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рд▓реЗрдЦрди рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП):

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

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

Hxb рдкреНрд░рд╛рд░реВрдк рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдПрдХ рдЕрд▓рдЧ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ , рдФрд░ рдХрдВрдкрд╛рдЗрд▓рд░ (рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ / deserializer рдХреЗ рд╕рд╛рде) рдореЗрдВ рдЗрд╕рдХрд╛ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдПрдХ рдЕрд▓рдЧ Haxe рд╢рд╛рдЦрд╛ рдореЗрдВ рд╣реИ ред рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдкрд░ рдХрд╛рдо рдЕрднреА рддрдХ рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рдФрд░ рд╢рд╛рдпрдж рдпрд╣ рд╣реЗрдХреНрд╕ 4.1 рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред

рдЗрдВрдЯрд░реНрдирд╢рд┐рдк рдХреЗ рджреМрд░рд╛рди рдСрд░реЗрд▓ рдХреЗ рдХрд╛рдо рдХрд╛ рдЪреМрдерд╛ рдФрд░ рдореБрдЦреНрдп рдлреЛрдХрд╕ рдПрдХ рдирдП рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╕рд┐рд╕реНрдЯрдо рдПрдкреАрдЖрдИ - рдПрд╕реЗрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдерд╛ред

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

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

API Node.js. рдХреЛ рдирдореВрдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реЛрдЪрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрд╡рд╢реНрдпрдХ рд╕рд┐рд╕реНрдЯрдо рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рд░реНрд╡рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓ рд╣реИред

рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА, Node.js API рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдкреАрдЖрдИ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рдордЬрдмреВрдд рдЯрд╛рдЗрдкрд┐рдВрдЧ рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП fs
рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдХрд╛рд░реНрдп рдкрде рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╛ рддреЛ Buffer
рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ URL
рдЬреИрд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рд╣реЗрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЗрддрдирд╛ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред

Node.js, рдмрджрд▓реЗ рдореЗрдВ, рд╕реА рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рд▓рд┐рдмрд╡ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ ред рд╣реЗрдХреНрд╕реЗ рд╕реЗ рд▓рд┐рдмреНрдпреВрд╡ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕реАрдзреЗ рддреМрд░ рдкрд░ рдЗрддрдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛: рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓ рдХреЛ uv_loop_t
рд░реВрдк рд╕реЗ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ uv_loop_t
(рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рд╕рдВрд░рдЪрдирд╛) рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдИрд╡реЗрдВрдЯ рд▓реВрдк рдЗрди рдЗрдореНрдкрд╛рд╡реБ) рдФрд░ uv_fs_t
(рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд░рдЪрдирд╛):

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, Node.js рдФрд░ libuv API рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ eval рдореИрдХреНрд░реЛ рджреБрднрд╛рд╖рд┐рдпрд╛ рдФрд░ rename
рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ):
- рдЙрдиреНрд╣реЛрдВрдиреЗ Node.js рд╕реЗ API рд╡рд┐рдзрд┐ рд▓реА, рдЗрд╕реЗ Haxe рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛, рддрд░реНрдХреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдорд╛рдирдХреАрдХреГрдд рдХрд░рдиреЗ рдФрд░ Haxe рдХреЗ рд▓рд┐рдП рдирд┐рд░рд░реНрдердХ рддрд░реНрдХреЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрде рддрд░реНрдХ (рдкреНрд░рдХрд╛рд░
FilePath
) рддрд╛рд░ рдкрд░ рд╕рд╛рд░ рд╣реИрдВ:

- рдлрд┐рд░ рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП OCaml рдмрд╛рдЗрдВрдбрд░реНрд╕ рдмрдирд╛рдпрд╛:

- рд▓рд┐рдВрдХ OCaml рдФрд░ C (CFFI - C рдлреЙрд░реЗрди рдлрдВрдХреНрд╢рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ):

- рдФрд░ рдЕрдВрдд рдореЗрдВ рд╕реА-рдмрд╛рдЗрдВрдбрд░реНрд╕ рдХреЛ рдУрдореЗрдХреНрдПрд▓ рд╕реЗ рд▓рд┐рдмреБрд╡ рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛:

рдЗрд╕реА рддрд░рд╣, рдпрд╣ рд╣реИрд╢рд▓рд┐рдВрдХ рдФрд░ рдиреЗрдХреЛ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдЕрднреА рдХреЗ рд▓рд┐рдП, рдРрд╢ рдПрдкреАрдЖрдИ рдХреЗрд╡рд▓ рдЗрди рддреАрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдиреЗ рдмрд╣реБрдд рдХрд╛рдо рд▓рд┐рдпрд╛ред
Aurel рдиреЗ рдХреБрдЫ рдЫреЛрдЯреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рджрд░реНрд╢рд╛рдпрд╛ рдХрд┐ рдХреИрд╕реЗ рдРрд╢ рдПрдкреАрдЖрдИ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдкрд╣рд▓рд╛ рдЙрджрд╛рд╣рд░рдг рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкрдврд╝рдиреЗ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рд╣реИред рдЕрдм рддрдХ, рдХреЛрдб рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ libuv ( hl.Uv.init()
) рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реАрдХреЗ hl.Uv.init()
рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрдХреНрд░ ( hl.Uv.run()
) рдХреЛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдПрдкреАрдЖрдИ рдкрд░ рдХрд╛рдо рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ (рд▓реЗрдХрд┐рди рднрд╡рд┐рд╖реНрдп рдореЗрдВ) рд╡реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЬреБрдбрд╝ рдЬрд╛рдПрдВрдЧреЗ):

рджрд┐рдЦрд╛рдП рдЧрдП рдХреЛрдб рдХрд╛ рдкрд░рд┐рдгрд╛рдо:

рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ AsyncFileSystem.readFile()
рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдо "рдХреЙрд▓" рдЯреНрд░реЗрд╕ рдХреЗ рдмрд╛рдж рдХрдВрд╕реЛрд▓ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдЬреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкрдврд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХреЛрдб рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рджреВрд╕рд░рд╛ рдЙрджрд╛рд╣рд░рдг рдбреАрдПрдирдПрд╕ рдФрд░ рдЖрдИрдкреА рдкрддреЗ рдХреЗ рд╕рд╛рде рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдСрдкрд░реЗрд╢рди рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рд╣реИред

рдирдП рдПрдкреАрдЖрдИ рдореЗрдВ, рд╣реЛрд╕реНрдЯ рдирд╛рдо, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЖрдИрдкреА рдкрддреЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ рддрд░реАрдХреЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рддреАрд╕рд░рд╛ рдЙрджрд╛рд╣рд░рдг рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЯреАрд╕реАрдкреА рдЗрдХреЛ рд╕рд░реНрд╡рд░ рд╣реИ, рдЬрд┐рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рддреАрди рд▓рд╛рдЗрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:

рдПрдХ рдЪреМрдерд╛ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕реВрдЪрдирд╛рдУрдВ рдХреЗ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рд╣реИ:
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╕реНрдЯреИрдЯрд┐рдХ makeFrame()
рд╡рд┐рдзрд┐ рдЕрд▓рдЧ png рдЪрд┐рддреНрд░ рдмрдирд╛рддрд╛ рд╣реИ:

рдФрд░ main
рд╡рд┐рдзрд┐ рдореЗрдВ, рд╣рдо ffmpeg рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо makeFrame()
рдореЗрдВ рдЙрддреНрдкрдиреНрди рддрдЦреНрддреЗ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ makeFrame()
:

рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдПрдХ рд╡реАрдбрд┐рдпреЛ рдлрд╝рд╛рдЗрд▓ рд╣реЛрдЧреА:

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

рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╣рдо ffmpeg рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЛ рдЫреЛрдЯреЗ "рднрд╛рдЧреЛрдВ" рдореЗрдВ рддреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреЛрд░реНрдЯ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВ:

рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдПрдХ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╡реАрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо рдорд┐рд▓рддреА рд╣реИ:

рдЙрдкрд░реЛрдХреНрдд рд╕рдВрдХреНрд╖реЗрдк, рдирдП asys рдПрдкреАрдЖрдИ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- рдирдП рд╕рд┐рд╕реНрдЯрдо рд╕рд╣рд┐рдд рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ, рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдирд╣реАрдВ рдереЗ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП), рд╕рд╛рде рд╣реА рдкреБрд░рд╛рдиреЗ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рдВрд╕реНрдХрд░рдгред
- рдЯреАрд╕реАрдкреА / рдпреВрдбреАрдкреА / рдЖрдИрдкреАрд╕реА рд╕реЙрдХреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди
- DNS рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ (рдЕрдм рддрдХ 2 рддрд░реАрдХреЗ:
lookup
рдФрд░ reverse
) - рд╕рд╛рде рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рддрд░реАрдХреЗред

Asys рдПрдкреАрдЖрдИ рдкрд░ рдХрд╛рдо рдЕрднреА рддрдХ рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд▓рд┐рдмреНрд░реБрд╡ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред рд╕рдВрдмрдВрдзрд┐рдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХреЛ рдЕрднреА рддрдХ рдореБрдЦреНрдп рд╣реЗрдХреНрд╕ рд╢рд╛рдЦрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдирдП рддрд░реАрдХреЛрдВ, рдЙрдирдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдФрд░ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдирд╛рдореЛрдВ рдкрд░ рд░рд╛рдп рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рдХрд░рддреА рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдРрд╢ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗрд╡рд▓ рд╣реИрд╢рд▓рд┐рдВрдХ, рдПрд╡рд▓ рдФрд░ рдиреЗрдХреЛ (рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреБрд▓ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ) рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдСрд░реЗрд▓ рдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА C ++ рдФрд░ Lua рдХреЗ рд▓рд┐рдП рдирдП API рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рд╣реИред рдЕрдиреНрдп рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рд╢реЛрдз рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

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

Ammer рдХрд╛ рд▓рдХреНрд╖реНрдп C рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╛рдЗрдВрдбрд░реЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдирд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ HashLink рдФрд░ HXCPP рджреЛрдиреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ (рдЕрдХреНрдЯреВрдмрд░ 2018 рдореЗрдВ, Lars Duse рдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реБрд▓реНрдХ рдирд┐рдпреБрдХреНрдд рдХрд┐рдпрд╛ )ред
рдпрд╣ рдХрд╛рд░реНрдп рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдХреНрдпреЛрдВ рдерд╛? рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣реИрд╢рд▓рд┐рдВрдХ рдФрд░ рдПрдЪрдПрдХреНрд╕рд╕реАрдкреАрдкреА рдХреЗ рд▓рд┐рдП рдмрд╛рдЗрдВрдбрд░реНрд╕ рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдорд╛рди рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдЧреЛрдВрдж рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред
рдСрд░реЗрд▓ рдиреЗ рдореЛрдЯреЗ рддреМрд░ рдкрд░ рд╡рд╣реА рдХрд╛рдо рдХрд┐рдпрд╛, рдЬрдм рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрд╛рдореЗрдЪреНрдЫрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд╣реЗрдХреНрд╕ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдерд╛ - рдПрд╡рд▓, рдиреЗрдХреЛ рдФрд░ рд╣реИрд╢рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╣реА рдХреЛрдб рд▓рд┐рдЦрдирд╛ рдерд╛ рдЬреЛ рдХреЗрд╡рд▓ рд╡рд┐рд╡рд░рдгреЛрдВ рдореЗрдВ рднрд┐рдиреНрди рдерд╛ (рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓, рдПрдлрдПрдлрдЖрдИ рдХреЗ рдХрд╛рдо рдореЗрдВ рдЕрдВрддрд░, рдЖрджрд┐):

рдЗрд╕реА рддрд░рд╣ рдХреЗ рдХрд╛рдо рдХреЛ рд╣реЗрдХреНрд╕ рдХреА рдУрд░ рд╕реЗ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рддрд╛рдХрд┐ рджреЗрд╢реА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЗрд╕рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ:

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

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

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

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЖрдореЗрд░ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ:
- рд╕рд░рд▓ рдХрд╛рд░реНрдп
- рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ (рд╣реЗрдХреНрд╕-рдХреЛрдб рдореЗрдВ, рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)
- рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ
рд╕рдорд░реНрдерди рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ:
- рдХреЙрд▓рдмреИрдХ (рд╡реЗ рдЕрднреА рднреА рдХрдо рдЖрдкреВрд░реНрддрд┐ рдореЗрдВ рд╣реИрдВ)
- рдФрд░ рд╕рдВрд░рдЪрдирд╛рдПрдВ (рд╕реА-рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд╡рд╢реНрдпрдХ)

рдЕрдм ammer C ++, HashLink рдФрд░ Eval рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдФрд░ рдСрд░реЗрд▓ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИ рдХрд┐ рд╡рд╣ рдЕрдиреНрдп рд╕рд┐рд╕реНрдЯрдо рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИред

рдЖрдореЗрд░ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдСрд░реЗрд▓ рдиреЗ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рджрд┐рдЦрд╛рдпрд╛ рдЬреЛ рд▓реБрдЖ рджреБрднрд╛рд╖рд┐рдпрд╛ рдЪрд▓рд╛рддрд╛ рд╣реИ:

рдЗрд╕рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рдмрд╛рдЗрдВрдбрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХреБрдЫ рддрд░реАрдХреЛрдВ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХреА рдЧрдИ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдХреЙрд▓рдмреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд╕рдорд░реНрдерди рдХрд╛ рдЕрднреА рддрдХ рдПрд╣рд╕рд╛рд╕ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рд▓реЗрдХрд┐рди рдСрд░реЗрд▓ рдХреЛ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╡рд╣ рдЬрд▓реНрдж рд╣реА рдЗрд╕реЗ рдареАрдХ рдХрд░ рдкрд╛рдПрдВрдЧреЗред

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

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