
рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ (1 рдЕрдХреНрдЯреВрдмрд░, 2012) рд╕реЗ рдереЛрдбрд╝рд╛ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ
рд╣рдмрд░рд╛рдмреНрд░ рдореЗрдВ рдПрдХ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ "
Node.js + Chromium = AppJS: рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рджреВрд╕рд░реЗ рдЪрд░рдг рдХреЗ рд▓рд┐рдП рдЖрд╢рд╛рдЬрдирдХ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ " рдкрд░ рдкреЛрд╕реНрдЯ
рдХрд┐рдпрд╛ рдерд╛ , рдЬрд┐рд╕рдореЗрдВ рдореИрдВрдиреЗ AppJS рдХреЛ
Node.js рдФрд░ рдХреНрд░реЛрдорд┐рдпрдо рдЗрдВрдЬрди рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЙрджреНрдзреГрдд рдХрд┐рдпрд╛ рд╣реИ
ред рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдЙрд╕рдХреА рдкрд░рд┐рдЪрд┐рдд рддрдХрдиреАрдХреЛрдВ (рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдПрдЪрдЯреАрдПрдордПрд▓, рд╕реАрдПрд╕рдПрд╕) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреАрдпреВрдЖрдИ (рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдпреВрдЬрд░ рдЗрдВрдЯрд░рдлреЗрд╕) рдХреЗ рд╕рд╛рде рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдбреЗрд╡рд▓рдкрд░ рдмрдирдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдХреНрд░реЛрдорд┐рдпрдо рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ рдиреЛрдб рдПрдкреАрдЖрдИ рдХреА рд╢рдХреНрддрд┐ рдХреА рдЕрднрд┐рд╡реНрдпрдВрдЬрдХ рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рддреА рд╣реИред
рдЕрдЧрд▓реЗ рджрд┐рди (2 рдЕрдХреНрдЯреВрдмрд░, 2012) рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдореЗрдВ "
Node.js + Chromium = рдиреЛрдб-рд╡реЗрдмрдХрд┐рдЯ: рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреВрд╕рд░реЗ рдЪрд░рдг рдХрд╛ рдПрдХ рдФрд░ рднреА рдЕрдзрд┐рдХ рдЖрд╢рд╛рдЬрдирдХ рд╕рдВрд╕реНрдХрд░рдг " рдореИрдВрдиреЗ рдзреНрдпрд╛рди рджрд┐рд▓рд╛рдпрд╛ рдХрд┐ AppJS рдХреЗрд╡рд▓ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ:
рдиреЛрдб-рд╡реЗрдмрдХрд┐рдЯ рдЕрд▓рдЧ рд╣реИ рдкреНрд░рдпреЛрдЬреНрдп рдФрд░ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдПрдкреАрдЖрдИ рдХреНрд╖рдорддрд╛рдУрдВ, рдЕрдзрд┐рдХ рд╡реНрдпрд╛рдкрдХ рдкреНрд░рд▓реЗрдЦрди, рдФрд░
рдЬрд╝рд┐рдк-рдкреИрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рд╢реБрд░реВрдЖрдд рднреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рддреЛ рдХреНрдпрд╛? - AppJS рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП
рдиреЛрдб-рд╡реЗрдмрдХрд┐рдЯ рдХреА рд╕рдлрд▓рддрд╛ рд╕реЗ рдкрд╣рд▓реЗ рддреЗрд░рд╣ рдорд╣реАрдиреЗ рднреА рдирд╣реАрдВ рдмреАрддреЗ рдереЗред AppJS рдХреЗ рдЯреНрд╡рд┐рдЯрд░ рдкрд░ рдЖрдЬ рдЖрдк рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ AppJS рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐
рдиреЛрдб-рд╡реЗрдмрдХрд┐рдЯ рдиреЗ рдЕрдкрдирд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ:
![[рдЯреНрд╡рд┐рдЯрд░ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ]](https://habrastorage.org/getpro/habr/post_images/b7d/a1e/dd0/b7da1edd02145a22fe534dd9903e8e42.png)
рдЗрдВрдЯреЗрд▓ рдУрдкрди рд╕реЛрд░реНрд╕ рдЯреЗрдХреНрдиреЛрд▓реЙрдЬреА рд╕реЗрдВрдЯрд░ (рдЬреЛ
рдиреЛрдб-рд╡реЗрдмрдХрд┐рдЯ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ
) рдХреА рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдпреЛрдЧреНрдп рдЬреАрдд рдХрд╛ рдорддрд▓рдм рд╣реИ рдиреЛрдб рдХреЗ рд▓рд┐рдП GUI рдХреА рдЗрддрдиреА рд▓рдВрдмреА рдПрдХрд░реВрдкрддрд╛ рдХреА рд╢реБрд░реБрдЖрдд, рдЬрд┐рд╕рдХреА рддреБрд▓рдирд╛ рдЙрд╕ рд╕рдордп рд╡реЗрдм рдкрд░ "рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдпреБрджреНрдз" рдХреЗ рдЕрдВрдд рдХреЗ рдкреНрд░рднрд╛рд╡ рд╕реЗ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдпрд╣ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдкрд╕рдВрдж рдХреА рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдмрдЪрд╛рдПрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрдВрдЬрди рд╕реНрд╡рдпрдВ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рдпреЛрдВ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ рдард╣рд░рд╛рд╡ рдХреЗ рдЬреЛрдЦрд┐рдо рдХреЛ рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕рдЪ рд╣реИ, рдХрд░реАрдмреА рдкреНрд░рддрд┐рдпреЛрдЧрд┐рдпреЛрдВ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ (
"рдиреЛрдб + рдХреНрд░реЛрдорд┐рдпрдо" рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ
) рдХрд╛ рдЕрднреА рднреА рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рдХреНрд╖рд┐рддрд┐рдЬ рдкрд░, рдЕрдзрд┐рдХ рджреВрд░ рдХреЗ рдкреНрд░рддрд┐рдпреЛрдЧреА рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╡реЗрдм-
рдЖрдзрд╛рд░рд┐рдд рддрдХрдиреАрдХреЛрдВ рдХреЗ
рд╕рд╛рде GUI рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдирд╛ рднреА рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ OS (рдЬреЛ
рдХрд┐ рдЬреЗрд╕реНрдЯрди рдиреЗ рдЖрдЬ
рд╣рдореЗрдВ рдмрддрд╛рдпрд╛ , рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ рд╡рд┐рдВрдбреЛрдЬ, рд▓рд┐рдирдХреНрд╕ рдФрд░ рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдкрд░ рд╣реА рдирд╣реАрдВ) ред рдФрд░ рдкрд┐рдЫрд▓реЗ рдорд╣реАрдиреЗ (рд╕рд┐рддрдВрдмрд░ 2013 рдореЗрдВ), Google рдиреЗ рдЕрдкрдиреЗ рдкреВрд░реНрд╡рд╡рд░реНрддреА рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреЗрд╢ рдХрд┐рдпрд╛ - рдпреЗ
рдХреНрд░реЛрдо рдПрдкреНрд╕ рд╣реИрдВ , рдЬрд┐рдиреНрд╣реЗрдВ рдпреЗрд╡рдЧреЗрдиреА рдЬрд╝реЛрд▓реЛрдЯреЛрд╡ рдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЬрд╝реЛрд░ рд╕реЗ рджреЗрдЦрд╛ "рд╣реЗрдбрд┐рдВрдЧ
рдмрдирд╛рдо рдХреНрд░реЛрдо "
: рдХреНрдпрд╛ Google рдФрд░ Microsoft Google рд╕реЗ рдУрдПрд╕ рдХреЛ рдмрд╛рд╣рд░ рдХрд░ рджреЗрдВрдЧреЗ? "ред
рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдореБрдЭреЗ
Google рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдПрдкреАрдЖрдИ рд╕реЗ рдЕрдзрд┐рдХ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐
рд╡реЗрдмрдПрдкреА рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдУрдПрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ
рдПрдирдУрдбреА рдПрдкреАрдЖрдИ (
рдпреВрдЖрдИ рдиреЛрдб-рд╡реЗрдмрдХрд┐рдЯ рдПрдкреАрдЖрдИ рдХреЗ рд╕рдВрдпреЛрдЬрди рдореЗрдВ
) рдкрд╕рдВрдж рд╣реИ ред рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдФрд░ рдХреНрдпреЛрдВ? рдЪреВрдБрдХрд┐ рдПрдкреАрдЖрдИ рдиреЛрдб рдореЙрдбреНрдпреВрд▓реНрд╕ рдХреЗ рдЖрд╕рд╛рди рд▓реЛрдбрд┐рдВрдЧ рдХреЗ
рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ - рдФрд░ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рд╕реЗ, рдмреАрдЬ рдХреА рддрд░рд╣, рдерд░реНрдб рдкрд╛рд░реНрдЯреА рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдУрдкрди-рд╕реЛрд░реНрд╕ рд░реЗрдбреА-рдореЗрдб рдореЙрдбреНрдпреВрд▓ рдХреА
рдПрдХ рд╡реНрдпрд╛рдкрдХ рд╕реВрдЪреА ,
рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░
npm рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рдЧреЛрджрд╛рдо рд╕реЗ рдФрд░ рдмрд╛рдж рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред
рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ Google рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдФрд░ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдУрдПрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?