{"id":478964,"date":"2026-05-07T14:54:03","date_gmt":"2026-05-07T14:54:03","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=478964"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=478964","title":{"rendered":"Rust: \u0437\u0430\u0447\u0435\u043c \u043e\u043d \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f, \u0447\u0442\u043e \u0443\u043c\u0435\u0435\u0442 \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 \u043d\u0430 \u043d\u0435\u0433\u043e \u0447\u0430\u0441\u0442\u0438 \u0441\u0432\u043e\u0438\u0445 \u0441\u0438\u0441\u0442\u0435\u043c"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u2014 \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043a Rust \u0438\u043b\u0438 \u0441\u043b\u044b\u0448\u0430\u043b \u043e \u043d\u0435\u043c \u043b\u0438\u0448\u044c \u043e\u0431\u0440\u044b\u0432\u043a\u0438 \u0432\u043e\u0441\u0442\u043e\u0440\u0436\u0435\u043d\u043d\u044b\u0445 \u0438\u043b\u0438 \u043d\u0435\u0432\u043e\u0441\u0442\u043e\u0440\u0436\u0435\u043d\u043d\u044b\u0445 \u043e\u0442\u0437\u044b\u0432\u043e\u0432. \u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0435, \u0437\u0430\u0447\u0435\u043c \u043c\u0438\u0440\u0443 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u043b\u0441\u044f \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u044f\u0437\u044b\u043a, \u043a\u0430\u043a\u0438\u0435 \u00ab\u0431\u043e\u043b\u0438\u00bb C++ \u043e\u043d \u043b\u0435\u0447\u0438\u0442 \u0438 \u0433\u0434\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0435\u0433\u043e\u0434\u043d\u044f, \u2014 \u0437\u0434\u0435\u0441\u044c \u0432\u044b \u043d\u0430\u0439\u0434\u0435\u0442\u0435 \u043e\u0442\u0432\u0435\u0442\u044b \u043d\u0430 \u044d\u0442\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u044b. \u041c\u044b \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u043b\u0438\u0441\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e, \u0447\u0442\u043e\u0431\u044b \u0443 \u0432\u0430\u0441 \u0441\u043b\u043e\u0436\u0438\u043b\u0430\u0441\u044c \u043f\u043e\u043b\u043d\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430: \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u044f\u0437\u044b\u043a, \u0437\u0430\u0447\u0435\u043c \u0435\u0433\u043e \u0443\u0447\u0438\u0442\u044c \u0438 \u0441 \u0447\u0435\u0433\u043e \u043d\u0430\u0447\u0430\u0442\u044c \u043e\u0441\u0432\u043e\u0435\u043d\u0438\u0435. \u0421\u0440\u0430\u0437\u0443 \u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c\u0441\u044f: \u0435\u0441\u043b\u0438 \u00abThe Book\u00bb \u0434\u0430\u0432\u043d\u043e \u0441\u0442\u0430\u043b\u0430 \u0432\u0430\u0448\u0435\u0439 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043d\u043e\u0439 \u043a\u043d\u0438\u0433\u043e\u0439, \u0432\u044b \u0443\u0436\u0435 \u0441\u043e\u0431\u0430\u043a\u0443 \u0441\u044a\u0435\u043b\u0438 \u043d\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043f\u0430\u043c\u044f\u0442\u044c\u044e \u0438 \u0437\u043d\u0430\u0435\u0442\u0435 \u0432\u0441\u0435 \u043e \u0432\u043b\u0430\u0434\u0435\u043d\u0438\u0438 \u0438 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0438, \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u0432\u0440\u044f\u0434 \u043b\u0438 \u0432\u0430\u0441 \u0443\u0434\u0438\u0432\u0438\u0442. \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u043c \u0436\u0435 \u2014 \u0434\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p>\u0412 \u0430\u043f\u0440\u0435\u043b\u0435 2026 \u0433\u043e\u0434\u0430 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e \u0441\u0440\u0430\u0437\u0443 \u0434\u0432\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u044f, \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0432\u0448\u0438\u0445 \u0432\u043d\u043e\u0432\u044c \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e Rust. 16 \u0430\u043f\u0440\u0435\u043b\u044f \u0432\u044b\u0448\u0435\u043b \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u043b\u0438\u0437 \u2014 Rust 1.95.0. \u0410 \u0432\u0441\u043a\u043e\u0440\u0435 \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0418\u043b\u043e\u043d \u041c\u0430\u0441\u043a \u0437\u0430\u044f\u0432\u0438\u043b, \u0447\u0442\u043e \u043d\u043e\u0432\u044b\u0439 \u043c\u0435\u0441\u0441\u0435\u043d\u0434\u0436\u0435\u0440 XChat \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d \u043d\u0430 Rust \u0438 \u00abwhole new architecture\u00bb. <\/p>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u043e\u043d\u044f\u0442\u044c, \u043f\u043e\u0447\u0435\u043c\u0443 \u0434\u043b\u044f \u043d\u043e\u0432\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c, \u0433\u0434\u0435 \u0432\u0430\u0436\u043d\u044b \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c, \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0438 \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u044c, \u0432\u0441\u0435 \u0447\u0430\u0449\u0435 \u0432\u044b\u0431\u0438\u0440\u0430\u044e\u0442 Rust?  <\/p>\n<h2>\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Rust, \u0435\u0441\u043b\u0438 \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u0432 \u043e\u0434\u043d\u043e\u043c \u0430\u0431\u0437\u0430\u0446\u0435<\/h2>\n<p><strong>Rust<\/strong> \u2014 \u044d\u0442\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0438 \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0433\u043e \u0441\u043e\u0444\u0442\u0430. \u041e\u043d \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0439 \u043a\u043e\u0434, \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b \u0432\u0440\u043e\u0434\u0435 JVM \u0438 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u0431\u043e\u0440\u0449\u0438\u043a \u043c\u0443\u0441\u043e\u0440\u0430 \u043a\u0430\u043a Java, Go, JavaScript \u0438\u043b\u0438 Python.<\/p>\n<p>\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c Rust \u2014 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u0438 \u0431\u0435\u0437 garbage collector. \u0422\u043e \u0435\u0441\u0442\u044c \u044f\u0437\u044b\u043a \u0441\u0442\u0430\u0440\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c use-after-free, dangling pointer, double free, data race \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u043e\u0441\u0442\u0438 \u0435\u0449\u0435 \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0441\u043e\u0432\u0441\u0435\u043c \u043a\u043e\u0440\u043e\u0442\u043a\u043e:<\/p>\n<blockquote>\n<p>Rust \u2014 \u044d\u0442\u043e \u044f\u0437\u044b\u043a \u0434\u043b\u044f \u0441\u043b\u0443\u0447\u0430\u0435\u0432, \u043a\u043e\u0433\u0434\u0430 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 C++, \u043d\u043e \u043d\u0435 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0436\u0438\u0442\u044c \u0441 \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u043c\u0438 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438 C++.<\/p>\n<\/blockquote>\n<h2>\u041f\u043e\u0447\u0435\u043c\u0443 Rust \u0432\u043e\u043e\u0431\u0449\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f<\/h2>\n<p>Rust \u0431\u044b\u043b \u0441\u043e\u0437\u0434\u0430\u043d\u00a0<strong>\u0413\u0440\u0435\u0439\u0434\u043e\u043d\u043e\u043c \u0425\u043e\u0430\u0440\u043e\u043c<\/strong>\u00a0\u0432\u00a0<strong>Mozilla<\/strong>\u00a0\u0432 \u043f\u0435\u0440\u0438\u043e\u0434 \u0441 2006 \u043f\u043e 2010 \u0433\u043e\u0434. \u0425\u043e\u0430\u0440 \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043d\u0430\u0434 \u044f\u0437\u044b\u043a\u043e\u043c \u0432 \u043b\u0438\u0447\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u0430 \u0437\u0430\u0442\u0435\u043c Mozilla \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u043b\u0430 \u043f\u0440\u043e\u0435\u043a\u0442 \u043a\u0430\u043a \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u043d\u0443\u044e \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043d\u044b\u0445 \u0434\u0432\u0438\u0436\u043a\u043e\u0432.\u00a0<strong>\u0421\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f Rust 1.0 \u0432\u044b\u0448\u043b\u0430 15 \u043c\u0430\u044f 2015 \u0433\u043e\u0434\u0430<\/strong>.  <\/p>\n<p>\u0423\u0436\u0435 \u0442\u043e\u0433\u0434\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043b\u0430 \u0437\u0430\u0434\u0430\u0447\u0443 \u044f\u0437\u044b\u043a\u0430 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0447\u0435\u0442\u043a\u043e: \u043f\u043e\u043c\u043e\u0447\u044c \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0435 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0441\u043e\u0447\u0435\u0442\u0430\u044f \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0441 \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u043c\u0438 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u044f\u043c\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u2014 \u0431\u0435\u0437 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e garbage collector \u0438 runtime.   <\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c, \u0437\u0430\u0447\u0435\u043c Rust \u0431\u044b\u043b \u043d\u0443\u0436\u0435\u043d, \u043d\u0443\u0436\u043d\u043e \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041e\u0433\u0440\u043e\u043c\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0430\u0436\u043d\u043e\u0433\u043e \u041f\u041e \u0434\u0435\u0441\u044f\u0442\u0438\u043b\u0435\u0442\u0438\u044f\u043c\u0438 \u043f\u0438\u0441\u0430\u043b\u0430\u0441\u044c \u043d\u0430 C \u0438 C++: \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u044b, \u044f\u0434\u0440\u0430 \u041e\u0421, \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u044b, \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b. \u042d\u0442\u0438 \u044f\u0437\u044b\u043a\u0438 \u043d\u0435\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u043c\u043e\u0449\u043d\u044b\u0435, \u043d\u043e \u043e\u043d\u0438 \u0434\u0430\u044e\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u0441\u0432\u043e\u0431\u043e\u0434\u044b. \u0410 \u0441\u0432\u043e\u0431\u043e\u0434\u0430 \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e \u0447\u0430\u0441\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043c\u043e\u0436\u0435\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u043e\u043f\u0430\u0441\u043d\u043e\u0435.<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a \u043f\u0430\u043c\u044f\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443\u0436\u0435 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0430. \u0418\u043b\u0438 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u043c\u0438 \u0431\u0443\u0444\u0435\u0440\u0430. \u0418\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0434\u0432\u0443\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0431\u0435\u0437 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438. \u0412 \u043b\u0443\u0447\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0443\u043f\u0430\u0434\u0435\u0442. \u0412 \u0445\u0443\u0434\u0448\u0435\u043c \u2014 \u0441\u0442\u0430\u043d\u0435\u0442 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c\u044e.<\/p>\n<p>Chromium Project \u043f\u0438\u0441\u0430\u043b, \u0447\u0442\u043e \u043e\u043a\u043e\u043b\u043e 70% high severity security bugs \u0432 Chromium \u0431\u044b\u043b\u0438 memory unsafety problems, \u0442\u043e \u0435\u0441\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 C\/C++ pointers. \u041f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u0438\u0437 \u043d\u0438\u0445 \u2014 use-after-free. \u042d\u0442\u043e \u043d\u0435 \u201c70% \u0432\u0441\u0435\u0445 \u0431\u0430\u0433\u043e\u0432 Chrome\u201d, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u0435 security bugs, \u043d\u043e \u0446\u0438\u0444\u0440\u0430 \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f.<\/p>\n<p><strong>Rust \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u043a\u0430\u043a \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u0437\u0430\u043a\u0440\u044b\u0442\u044c \u044d\u0442\u0443 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u0443\u044e \u0434\u044b\u0440\u0443:  <\/strong><\/p>\n<ul>\n<li>\n<p>\u0434\u0430\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0443\u0440\u043e\u0432\u043d\u044f C\/C++; <\/p>\n<\/li>\n<li>\n<p> \u0443\u0431\u0440\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043e\u0448\u0438\u0431\u043e\u043a \u043f\u0430\u043c\u044f\u0442\u0438; <\/p>\n<\/li>\n<li>\n<p> \u043d\u0435 \u0432\u0432\u043e\u0434\u0438\u0442\u044c GC;<\/p>\n<\/li>\n<li>\n<p>\u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 toolchain (\u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f);<\/p>\n<\/li>\n<li>\n<p>\u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u0433\u0438\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0435\u0440\u0435\u0442 \u043d\u0430 \u0441\u0435\u0431\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0432\u043c\u0435\u0441\u0442\u043e \u043d\u0430\u0434\u0435\u0436\u0434\u044b \u043d\u0430 \u0434\u0438\u0441\u0446\u0438\u043f\u043b\u0438\u043d\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430.<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041a\u043e\u0440\u043e\u0442\u043a\u0430\u044f \u0444\u043e\u0440\u043c\u0443\u043b\u0430:<\/strong><\/p>\n<blockquote>\n<p>Rust \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u043d\u0435 \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043c\u0438\u0440\u0443 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u043b\u043e \u0435\u0449\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041e\u043d \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0443 \u0441\u0442\u0430\u0440\u044b\u0445 \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u0432 \u0431\u044b\u043b \u0431\u043e\u043b\u0435\u0437\u043d\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u0440\u043e\u043c\u0438\u0441\u0441: \u043b\u0438\u0431\u043e \u0431\u044b\u0441\u0442\u0440\u043e, \u043d\u043e \u043e\u043f\u0430\u0441\u043d\u043e; \u043b\u0438\u0431\u043e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0435\u0435, \u043d\u043e \u0441 runtime, GC \u0438 \u043c\u0435\u043d\u044c\u0448\u0438\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0435\u043c. <\/p>\n<\/blockquote>\n<h2>\u041a\u0430\u043a\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 Rust \u043f\u044b\u0442\u0430\u043b\u0441\u044f \u0440\u0435\u0448\u0438\u0442\u044c<\/h2>\n<p>\u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c Rust, \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u044f\u0437\u044b\u043a\u043e\u0432.<\/p>\n<h3>C\/C++: \u0431\u044b\u0441\u0442\u0440\u043e, \u043d\u043e \u043e\u043f\u0430\u0441\u043d\u043e  <\/h3>\n<p>C \u0438 C++ \u0434\u0430\u044e\u0442 \u043f\u043e\u0447\u0442\u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u043d\u0430\u0434 \u043f\u0430\u043c\u044f\u0442\u044c\u044e. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0441\u0430\u043c \u0440\u0435\u0448\u0430\u0435\u0442, \u0433\u0434\u0435 \u0438 \u043a\u043e\u0433\u0434\u0430 \u0432\u044b\u0434\u0435\u043b\u044f\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0442\u044c, \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0431\u0443\u0444\u0435\u0440\u0430\u043c\u0438.<\/p>\n<p>\u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 C\/C++ \u0431\u044b\u0441\u0442\u0440\u044b\u043c\u0438 \u0438 \u0433\u0438\u0431\u043a\u0438\u043c\u0438. \u041d\u043e \u0446\u0435\u043d\u0430 \u2014 \u0432\u044b\u0441\u043e\u043a\u0430\u044f \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u043e\u0448\u0438\u0431\u043e\u043a.<\/p>\n<p><strong>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b:<\/strong><\/p>\n<ul>\n<li>\n<p><strong>Memory safety<\/strong> (\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e) \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043b\u0435\u0436\u0438\u0442 \u043d\u0430 \u043f\u043b\u0435\u0447\u0430\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>Buffer overflow<\/strong> \u0438 <strong>buffer over-read<\/strong> \u2014 \u0437\u0430\u043f\u0438\u0441\u044c \u0438\u043b\u0438 \u0447\u0442\u0435\u043d\u0438\u0435 \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u043c\u0438 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0431\u0443\u0444\u0435\u0440\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>Use-after-free<\/strong> \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f \u043f\u043e\u0441\u043b\u0435 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438.<\/p>\n<\/li>\n<li>\n<p><strong>Double free<\/strong> \u2014 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0435 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0439 \u0438 \u0442\u043e\u0439 \u0436\u0435 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043f\u0430\u043c\u044f\u0442\u0438.<\/p>\n<\/li>\n<li>\n<p><strong>Dangling pointer<\/strong> \u2014 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442.<\/p>\n<\/li>\n<\/ul>\n<p> \u041f\u0440\u0438\u043c\u0435\u0440 \u043d\u0430 C:  <\/p>\n<pre><code class=\"cpp\">#include &lt;stdio.h&gt;#include &lt;string.h&gt;int main() {    char name[8];    strcpy(name, \"very very long name\");    printf(\"%s\\n\", name);    return 0;}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:87px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><em>\u0417\u0434\u0435\u0441\u044c \u043c\u0430\u0441\u0441\u0438\u0432 <\/em><code><em>name<\/em><\/code><em> \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d \u043d\u0430 8 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432, \u043d\u043e \u043c\u044b \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0442\u0443\u0434\u0430 \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u0438\u043b\u044c\u043d\u043e \u0434\u043b\u0438\u043d\u043d\u0435\u0435. \u0412 C \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u043f\u043e\u0432\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044e \u043f\u0430\u043c\u044f\u0442\u0438. \u0418\u043d\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u043f\u0430\u0434\u0435\u0442. \u0418\u043d\u043e\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u0435\u0441\u0442\u0438 \u0441\u0435\u0431\u044f \u0441\u0442\u0440\u0430\u043d\u043d\u043e. \u0418\u043d\u043e\u0433\u0434\u0430 \u0442\u0430\u043a\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u0441\u0442\u0430\u043d\u0435\u0442 \u0447\u0430\u0441\u0442\u044c\u044e exploit chain.<\/em><\/p>\n<p>Rust \u043d\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u0442\u0430\u043a\u043e\u0439 \u0441\u0442\u0438\u043b\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u0432 safe-\u043a\u043e\u0434\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u043c, \u0434\u043e\u0441\u0442\u0443\u043f \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f:<\/p>\n<pre><code class=\"rust\">fn main() {    let items = vec![1, 2, 3];    \/\/ println!(\"{}\", items[10]); \/\/ panic: \u0438\u043d\u0434\u0435\u043a\u0441 \u0432\u043d\u0435 \u0433\u0440\u0430\u043d\u0438\u0446    println!(\"{:?}\", items.get(10)); \/\/ None}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code><em>items[10]<\/em><\/code><em> \u043f\u0440\u0438\u0432\u0435\u0434t\u0442 \u043a panic, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0438\u043d\u0434\u0435\u043a\u0441 \u0432\u043d\u0435 \u0433\u0440\u0430\u043d\u0438\u0446. \u0410 <\/em><code><em>items.get(10)<\/em><\/code><em> \u0432\u0435\u0440\u043d\u0435\u0442 <\/em><code><em>None<\/em><\/code><em>, \u0442\u043e \u0435\u0441\u0442\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e \u0441\u043a\u0430\u0436\u0435\u0442: \u201c\u0442\u0430\u043a\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043d\u0435\u0442\u201d.<\/em><\/p>\n<p>\u0425\u043e\u0440\u043e\u0448\u0438\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u2014 <strong>Heartbleed \u0432 OpenSSL, 2014 \u0433\u043e\u0434<\/strong>. \u0412 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 heartbeat \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0432 OpenSSL \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0430 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0433\u0440\u0430\u043d\u0438\u0446. \u041a\u043b\u0438\u0435\u043d\u0442 \u043c\u043e\u0433 \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u00ab\u043e\u0442\u043f\u0440\u0430\u0432\u044c \u043c\u043d\u0435 500 \u0431\u0430\u0439\u0442\u00bb, \u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e 1 \u0431\u0430\u0439\u0442 \u0434\u0430\u043d\u043d\u044b\u0445. \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043d\u0430 C \u0447\u0435\u0441\u0442\u043d\u043e \u0447\u0438\u0442\u0430\u043b\u0430 500 \u0431\u0430\u0439\u0442 \u0438\u0437 \u043f\u0430\u043c\u044f\u0442\u0438 \u2014 \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0447\u0443\u0436\u0438\u0435 \u043a\u043b\u044e\u0447\u0438 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043f\u0430\u0440\u043e\u043b\u0438, \u0441\u0435\u0441\u0441\u0438\u043e\u043d\u043d\u044b\u0435 cookie. \u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438 \u044d\u0442\u043e\u00a0<strong>buffer over-read<\/strong>\u00a0(\u0447\u0442\u0435\u043d\u0438\u0435 \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u044b), \u043d\u043e \u043a\u043e\u0440\u0435\u043d\u044c \u0442\u043e\u0442 \u0436\u0435: \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0433\u0440\u0430\u043d\u0438\u0446.  <\/p>\n<p>Rust \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0439 \u043b\u044e\u0431\u0443\u044e \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c, \u043d\u043e \u043e\u043d \u0440\u0435\u0437\u043a\u043e \u0441\u043d\u0438\u0436\u0430\u0435\u0442 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0446\u0435\u043b\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 memory-safety \u043e\u0448\u0438\u0431\u043e\u043a \u0432 safe-\u043a\u043e\u0434\u0435.<\/p>\n<p>\u0415\u0449\u0435 \u043e\u0434\u0438\u043d \u043f\u0440\u0438\u043c\u0435\u0440 \u2014 dangling pointer. \u0412 C++ \u043c\u043e\u0436\u043d\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u0436\u0435 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d:<\/p>\n<pre><code class=\"cpp\">#include &lt;iostream&gt;int* make_number() {    int value = 42;    return &amp;value; \/\/ \u043e\u043f\u0430\u0441\u043d\u043e: \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u0430\u0434\u0440\u0435\u0441 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439}int main() {    int* p = make_number();    std::cout &lt;&lt; *p &lt;&lt; std::endl; \/\/ \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code><em>value<\/em><\/code><em> \u0436\u0438\u0432\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <\/em><code><em>make_number<\/em><\/code><em>. \u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u0445\u043e\u0434\u0430 \u0438\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0430\u043c\u044f\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u0430, \u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c <\/em><code><em>p<\/em><\/code><em> \u0432\u0441\u0435 \u0435\u0449\u0435 \u201c\u043a\u0443\u0434\u0430-\u0442\u043e\u201d \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442.<\/em><\/p>\n<p>Rust \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 \u0432 safe-\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435 \u043d\u0435 \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442:<\/p>\n<pre><code class=\"rust\">fn make_number() -&gt; &amp;i32 {    let value = 42;    &amp;value}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><em>\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0441\u043a\u0430\u0436\u0435\u0442: \u043d\u0435\u043b\u044c\u0437\u044f \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u0430 \u043f\u0440\u0438 \u0432\u044b\u0445\u043e\u0434\u0435 \u0438\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<\/em><\/p>\n<p>\u042d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c \u043e\u0434\u043d\u0430 \u0438\u0437 \u0433\u043b\u0430\u0432\u043d\u044b\u0445 \u0438\u0434\u0435\u0439 Rust: \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0443 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438, \u0447\u0435\u043c production-\u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442.<\/p>\n<h3>Java: \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0435\u0435, \u043d\u043e \u0435\u0441\u0442\u044c JVM \u0438 GC <\/h3>\n<p>Java \u0440\u0435\u0448\u0438\u043b\u0430 \u043c\u043d\u043e\u0433\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b C\/C++ \u0434\u0440\u0443\u0433\u0438\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043d\u0435 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0435\u0442 \u043f\u0430\u043c\u044f\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e. \u042d\u0442\u0438\u043c \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f garbage collector \u2014 \u0441\u0431\u043e\u0440\u0449\u0438\u043a \u043c\u0443\u0441\u043e\u0440\u0430.  <\/p>\n<ul>\n<li>\n<p><strong>JVM<\/strong> \u2014 Java Virtual Machine, \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430, \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f Java-\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>Runtime<\/strong> \u2014  \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0435\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435\u043c.  <\/p>\n<\/li>\n<li>\n<p><strong>GC<\/strong> \u2014 garbage collector, \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f.<\/p>\n<\/li>\n<li>\n<p><strong>Pause time <\/strong>\u2014 \u043f\u0430\u0443\u0437\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0442\u044c \u0438\u0437-\u0437\u0430 \u0440\u0430\u0431\u043e\u0442\u044b GC. \u0421\u0430\u043c\u044b\u0439 \u0437\u0430\u043c\u0435\u0442\u043d\u044b\u0439 \u0442\u0438\u043f \u0442\u0430\u043a\u0438\u0445 \u043f\u0430\u0443\u0437 \u2014 <strong>Stop-the-world <\/strong>(STW): \u043c\u043e\u043c\u0435\u043d\u0442\u044b, \u043a\u043e\u0433\u0434\u0430 JVM \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043f\u0440\u0438\u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0447\u0430\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u0430 \u043c\u0443\u0441\u043e\u0440\u0430.<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f enterprise\/backend Java \u2014 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u0432\u044b\u0431\u043e\u0440. \u041e\u043d\u0430 \u0437\u0440\u0435\u043b\u0430\u044f, \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0430\u044f, \u0441 \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0439 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439. \u041d\u043e \u0434\u043b\u044f \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432, \u044f\u0434\u0440\u0430 \u041e\u0421, embedded, \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 low-latency \u0441\u0438\u0441\u0442\u0435\u043c \u0438 \u043e\u0447\u0435\u043d\u044c \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043a \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 JVM, GC \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 STW-\u043f\u0430\u0443\u0437\u044b \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0441\u0438\u043b\u044c\u043d\u044b\u043c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435\u043c.<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 Java \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c <code>NullPointerException<\/code>:<\/p>\n<pre><code class=\"java\">class Main {    static String findUserName(int id) {        if (id == 1) {            return \"Alice\";        }        return null;    }    public static void main(String[] args) {        String name = findUserName(2);        System.out.println(name.length()); \/\/ NullPointerException    }}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043d\u0435 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e Java \u043f\u043b\u043e\u0445\u0430\u044f. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e <code>null<\/code> \u2014 \u044d\u0442\u043e \u043e\u0441\u043e\u0431\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u043e\u0436\u0435\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0447\u0442\u0438 \u0433\u0434\u0435 \u0443\u0433\u043e\u0434\u043d\u043e, \u0435\u0441\u043b\u0438 API \u044d\u0442\u043e \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442.<\/p>\n<p>\u0412 Rust \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u044b\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u0442\u0438\u043f\u043e\u043c:<\/p>\n<pre><code class=\"rust\">fn find_user_name(id: u32) -&gt; Option&lt;String&gt; {    if id == 1 {        Some(String::from(\"Alice\"))    } else {        None    }}fn main() {    match find_user_name(2) {        Some(name) =&gt; println!(\"{}\", name.len()),        None =&gt; println!(\"user not found\"),    }}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code>Option&lt;T&gt;<\/code> \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442: \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043b\u0438\u0431\u043e \u0435\u0441\u0442\u044c (<code>Some<\/code>), \u043b\u0438\u0431\u043e \u0435\u0433\u043e \u043d\u0435\u0442 (<code>None<\/code>). \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043e\u0431\u0430 \u0441\u043b\u0443\u0447\u0430\u044f. \u042d\u0442\u043e \u043d\u0435 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u044f, \u0447\u0442\u043e \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u0448\u0438\u0431\u043e\u043a, \u043d\u043e \u0448\u0430\u043d\u0441 \u0437\u0430\u0431\u044b\u0442\u044c \u043f\u0440\u043e \u201c\u043f\u0443\u0441\u0442\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u201d \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u043d\u0438\u0436\u0435.  <\/p>\n<h3>Go: \u043f\u0440\u043e\u0449\u0435, \u043d\u043e \u043c\u0435\u043d\u044c\u0448\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f  <\/h3>\n<p>Go \u2014 \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u0434\u043b\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430. \u041e\u043d \u043f\u0440\u043e\u0449\u0435 Rust, \u0438\u043c\u0435\u0435\u0442 \u0443\u0434\u043e\u0431\u043d\u044b\u0439 garbage collector \u0438 \u043e\u0442\u043b\u0438\u0447\u043d\u0443\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 concurrency \u0447\u0435\u0440\u0435\u0437 \u0433\u043e\u0440\u0443\u0442\u0438\u043d\u044b.<\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e Go \u0442\u043e\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 GC, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442, \u0438\u043c\u0435\u0435\u0442 \u043f\u0430\u0443\u0437\u044b \u0438 \u043c\u0435\u043d\u044c\u0448\u0438\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u043d\u0430\u0434 \u043f\u0430\u043c\u044f\u0442\u044c\u044e. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, Go \u043d\u0435 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0435\u0442 <strong>data race<\/strong> (\u0433\u043e\u043d\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445) \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438.<\/p>\n<p><strong>Data race<\/strong> \u2014 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f, \u043a\u043e\u0433\u0434\u0430 \u0434\u0432\u0430 \u043f\u043e\u0442\u043e\u043a\u0430 \u0438\u043b\u0438 \u0433\u043e\u0440\u0443\u0442\u0438\u043d\u044b \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043e\u0431\u0440\u0430\u0449\u0430\u044e\u0442\u0441\u044f \u043a \u043e\u0434\u043d\u0438\u043c \u0438 \u0442\u0435\u043c \u0436\u0435 \u0434\u0430\u043d\u043d\u044b\u043c, \u0438 \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u0438\u043d \u0438\u0437 \u043d\u0438\u0445 \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442. \u0412 Go \u0435\u0441\u0442\u044c \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 race detector, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 <code>-race<\/code>, \u043d\u043e \u043e\u043d \u0438\u0449\u0435\u0442 \u0433\u043e\u043d\u043a\u0438, \u043f\u0440\u043e\u044f\u0432\u0438\u0432\u0448\u0438\u0435\u0441\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0442\u0435\u0441\u0442\u043e\u0432 \u0438\u043b\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. Rust \u0436\u0435 \u0441\u0442\u0430\u0440\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u0434\u0430\u0442\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043c\u043d\u043e\u0433\u0438\u0435 \u0442\u0430\u043a\u0438\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u0443\u0436\u0435 \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438. <\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0434\u0435\u0438 \u043d\u0430 Rust:<\/p>\n<pre><code class=\"rust\">use std::thread;fn main() {    let mut counter = 0;    thread::scope(|s| {        s.spawn(|| {            counter += 1;        });        s.spawn(|| {            counter += 1;        });    });    println!(\"{counter}\");}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0422\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f: \u0434\u0432\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043f\u044b\u0442\u0430\u044e\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a <code>counter<\/code>.<\/p>\n<p>\u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u2014 \u044f\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044e:<\/p>\n<pre><code class=\"rust\">use std::sync::{Arc, Mutex};use std::thread;fn main() {    let counter = Arc::new(Mutex::new(0));    let mut handles = vec![];    for _ in 0..2 {        let counter = Arc::clone(&amp;counter);        handles.push(thread::spawn(move || {            let mut value = counter.lock().unwrap();            *value += 1;        }));    }    for handle in handles {        handle.join().unwrap();    }    println!(\"{}\", *counter.lock().unwrap());}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code><em>Arc<\/em><\/code><em> \u2014 \u0430\u0442\u043e\u043c\u0430\u0440\u043d\u044b\u0439 \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u0441\u0441\u044b\u043b\u043e\u043a \u0434\u043b\u044f \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0433\u043e \u0432\u043b\u0430\u0434\u0435\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u043f\u043e\u0442\u043e\u043a\u0430\u043c\u0438.<br \/> <\/em><code><em>Mutex<\/em><\/code><em> \u2014 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0434\u0430\u043d\u043d\u044b\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u043f\u043e\u0442\u043e\u043a\u0443 \u0437\u0430 \u0440\u0430\u0437.<\/em><\/p>\n<p>Rust \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442 \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u043d\u0435\u043e\u0431\u044a\u044f\u0441\u043d\u0438\u043c\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439. \u041d\u043e \u043e\u043d \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u044f\u0432\u043d\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c, \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u0438 \u0437\u0430\u0449\u0438\u0449\u0430\u044e\u0442\u0441\u044f.<\/p>\n<h3>Python: \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0438\u0441\u0430\u0442\u044c, \u043d\u043e \u043d\u0435 \u0434\u043b\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f  <\/h3>\n<p>Python \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u0435\u043d \u0434\u043b\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432, data science, automation, backend \u0438 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u043e\u0432. \u041d\u043e \u043e\u043d \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u043d \u0434\u043b\u044f \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u044c\u044e \u0438 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>\u0412 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 \u0447\u0430\u0441\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0433\u0438\u0431\u0440\u0438\u0434\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434: \u0431\u0438\u0437\u043d\u0435\u0441-\u043b\u043e\u0433\u0438\u043a\u0430, orchestration \u0438\u043b\u0438 data science-\u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d \u043f\u0438\u0448\u0443\u0442\u0441\u044f \u043d\u0430 Python, \u0430 performance-critical \u0447\u0430\u0441\u0442\u0438 \u0432\u044b\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u0432 C, C++ \u0438\u043b\u0438 Rust.<\/p>\n<p>\u0425\u043e\u0440\u043e\u0448\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u2014 data processing. \u0412 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0435 Rust \u0435\u0441\u0442\u044c Polars \u0438 DataFusion: \u0431\u044b\u0441\u0442\u0440\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u043a\u0430\u043a \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0443 \u0438\u043b\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a Python-\u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d\u0430\u043c.<\/p>\n<h2>\u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 Rust? \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438<\/h2>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043a \u0441\u0430\u043c\u043e\u043c\u0443 \u0432\u0430\u0436\u043d\u043e\u043c\u0443.<\/p>\n<h3>\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0438\u0434\u0435\u044f Rust: ownership  <\/h3>\n<p><strong>Ownership<\/strong> \u2014 \u0432\u043b\u0430\u0434\u0435\u043d\u0438\u0435. \u0412 Rust \u0443 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0435\u0441\u0442\u044c <strong>\u0440\u043e\u0432\u043d\u043e \u043e\u0434\u0438\u043d \u0432\u043b\u0430\u0434\u0435\u043b\u0435\u0446<\/strong>. \u041a\u043e\u0433\u0434\u0430 \u0432\u043b\u0430\u0434\u0435\u043b\u0435\u0446 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0438\u0437 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0430\u0435\u0442\u0441\u044f, \u0430 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u044e\u0442\u0441\u044f. \u042d\u0442\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 Rust \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u0430\u043c\u044f\u0442\u044c\u044e \u0431\u0435\u0437 GC.<\/p>\n<pre><code class=\"rust\">fn main() {    let string1 = String::from(\"hello\");    let string2 = string1;    \/\/ println!(\"{}\", string1); \/\/ \u043e\u0448\u0438\u0431\u043a\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438    println!(\"{}\", string2);}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><em>\u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e? <\/em><code><em>String<\/em><\/code><em> \u0445\u0440\u0430\u043d\u0438\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043a\u0443\u0447\u0435. \u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u043f\u0438\u0448\u0435\u043c <\/em><code><em>let string2 = string1<\/em><\/code><em>, \u0432\u043b\u0430\u0434\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u043e\u0442 <\/em><code><em>string1<\/em><\/code><em> \u043a <\/em><code><em>string2<\/em><\/code><em>. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e <\/em><code><em>string1<\/em><\/code><em> \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u043b\u044c\u0437\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c.<\/em><\/p>\n<p>\u0412 JavaScript, Java \u0438\u043b\u0438 Python \u0442\u0430\u043a\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0441\u0442\u0440\u0430\u043d\u043d\u044b\u043c: \u201c\u043f\u043e\u0447\u0435\u043c\u0443 \u044f \u043d\u0435 \u043c\u043e\u0433\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0430\u0440\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e?\u201d \u041d\u043e Rust \u0434\u0435\u043b\u0430\u0435\u0442 \u044d\u0442\u043e \u043d\u0435 \u0438\u0437 \u0432\u0440\u0435\u0434\u043d\u043e\u0441\u0442\u0438. \u041e\u043d \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e, \u043a\u043e\u0433\u0434\u0430 \u0434\u0432\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0441\u0447\u0438\u0442\u0430\u044e\u0442 \u0441\u0435\u0431\u044f \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0430\u043c\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u0430 \u0438 \u043f\u044b\u0442\u0430\u044e\u0442\u0441\u044f \u043e\u0441\u0432\u043e\u0431\u043e\u0434\u0438\u0442\u044c \u0435\u0433\u043e \u0434\u0432\u0430\u0436\u0434\u044b.<\/p>\n<p>\u0414\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0432\u0440\u043e\u0434\u0435 <code>i32<\/code> \u0432\u0441\u0435 \u0438\u043d\u0430\u0447\u0435:<\/p>\n<pre><code class=\"rust\">fn main() {    let x = 42;    let y = x;    println!(\"{x}\");    println!(\"{y}\");}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code><em>i32<\/em><\/code><em> \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0434\u0435\u0448\u0435\u0432\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u0434\u0435\u0441\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 <\/em><code><em>Copy<\/em><\/code><em>: \u043e\u0431\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0438\u043c\u0435\u044e\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435.<\/em><\/p>\n<h3>Borrowing: \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u043e\u0442\u0434\u0430\u0432\u0430\u0442\u044c, \u0430 \u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c<\/h3>\n<p>\u0415\u0441\u043b\u0438 \u0431\u044b \u043a\u0430\u0436\u0434\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0432\u043b\u0430\u0434\u0435\u043d\u0438\u044f, \u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0431\u044b\u043b\u043e \u0431\u044b \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 Rust \u0435\u0441\u0442\u044c <strong>borrowing<\/strong> \u2014 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435.<\/p>\n<p>\u0417\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 \u2014 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u0431\u0435\u0437 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0432\u043b\u0430\u0434\u0435\u043d\u0438\u044f.<\/p>\n<pre><code class=\"rust\">fn main() {    let name = String::from(\"Alice\");    print_name(&amp;name);    println!(\"{}\", name);}fn print_name(value: &amp;String) {    println!(\"{}\", value);}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code><em>name<\/em><\/code><em> \u0432\u043b\u0430\u0434\u0435\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u043e\u0439. <\/em><code><em>&amp;name<\/em><\/code><em> \u2014 \u0441\u0441\u044b\u043b\u043a\u0430, \u0442\u043e \u0435\u0441\u0442\u044c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435. <\/em><code><em>print_name<\/em><\/code><em> \u043d\u0435 \u0437\u0430\u0431\u0438\u0440\u0430\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u0435\u0431\u0435. \u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u0437\u043e\u0432\u0430 <\/em><code><em>name<\/em><\/code><em> \u0432\u0441\u0435 \u0435\u0449\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c. <\/em> <\/p>\n<p><strong>\u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f: <\/strong>\u043c\u043e\u0436\u043d\u043e \u0438\u043c\u0435\u0442\u044c \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0433\u043e\u0434\u043d\u043e \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u0445 \u0441\u0441\u044b\u043b\u043e\u043a (<code>&amp;T<\/code>) \u0438\u043b\u0438\u00a0<strong>\u043e\u0434\u043d\u0443<\/strong>\u00a0\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u0443\u044e \u0441\u0441\u044b\u043b\u043a\u0443 (<code>&amp;mut T<\/code>), \u043d\u043e \u043d\u0435 \u0442\u043e \u0438 \u0434\u0440\u0443\u0433\u043e\u0435 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e;<\/p>\n<h3>Lifetimes: \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0436\u0438\u0442\u044c \u0434\u043e\u043b\u044c\u0448\u0435 \u0434\u0430\u043d\u043d\u044b\u0445  <\/h3>\n<p><strong>Lifetime<\/strong> \u2014 \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 \u0441\u0441\u044b\u043b\u043a\u0438. \u042d\u0442\u043e \u043f\u0435\u0440\u0438\u043e\u0434, \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u0441\u044b\u043b\u043a\u0430 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0439.<\/p>\n<p>\u0412 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 Rust \u0441\u0430\u043c \u0432\u044b\u0432\u043e\u0434\u0438\u0442 lifetimes, \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0438\u0445 \u043d\u0435 \u043f\u0438\u0448\u0435\u0442. \u041d\u043e \u0438\u043d\u043e\u0433\u0434\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0443 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043c\u043e\u0447\u044c.<\/p>\n<pre><code class=\"rust\">fn longest&lt;'a&gt;(first: &amp;'a str, second: &amp;'a str) -&gt; &amp;'a str {    if first.len() &gt; second.len() {        first    } else {        second    }}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code>'a<\/code> \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442: \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0430\u044f \u0441\u0441\u044b\u043b\u043a\u0430 \u0436\u0438\u0432\u0435\u0442 \u043d\u0435 \u0434\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438. \u0422\u043e \u0435\u0441\u0442\u044c Rust \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u044b.<\/p>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 lifetimes \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e. \u041d\u043e \u0438\u0434\u0435\u044f \u043f\u0440\u043e\u0441\u0442\u0430\u044f: \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u043f\u0435\u0440\u0435\u0436\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043e\u043d\u0430 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442.<\/p>\n<h3>Borrow checker: \u0441\u0442\u0440\u043e\u0433\u0438\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440-\u0434\u0440\u0443\u0433<\/h3>\n<p><strong>Borrow checker<\/strong> \u2014 \u0447\u0430\u0441\u0442\u044c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 Rust, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0432\u043b\u0430\u0434\u0435\u043d\u0438\u044f, \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0432\u0440\u0435\u043c\u0451\u043d \u0436\u0438\u0437\u043d\u0438.<\/p>\n<p>\u041d\u043e\u0432\u0438\u0447\u043a\u0438 \u0447\u0430\u0441\u0442\u043e \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0442 \u0435\u0433\u043e \u043a\u0430\u043a \u0432\u0440\u0430\u0433\u0430. \u041f\u0438\u0448\u0435\u0448\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043a\u043e\u0434 \u2014 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0440\u0443\u0433\u0430\u0435\u0442\u0441\u044f. \u041f\u0435\u0440\u0435\u0434\u0430\u0435\u0448\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u2014 \u043e\u043d\u043e \u201c\u043f\u0435\u0440\u0435\u0435\u0445\u0430\u043b\u043e\u201d. \u0411\u0435\u0440\u0435\u0448\u044c \u0434\u0432\u0435 mutable-\u0441\u0441\u044b\u043b\u043a\u0438 \u2014 \u043d\u0435\u043b\u044c\u0437\u044f. \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0448\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u2014 lifetime \u043d\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442.<\/p>\n<p>\u041d\u043e \u0447\u0435\u0440\u0435\u0437 \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043f\u043e\u043d\u044f\u0442\u043d\u043e: borrow checker \u043d\u0435 \u043c\u0435\u0448\u0430\u0435\u0442 \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434. \u041e\u043d \u043c\u0435\u0448\u0430\u0435\u0442 \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434, \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0432\u044b \u043f\u043e\u0436\u0430\u043b\u0435\u0435\u0442\u0435 \u0447\u0435\u0440\u0435\u0437 \u043f\u043e\u043b\u0433\u043e\u0434\u0430.<\/p>\n<h3>\u041f\u043e\u0447\u0435\u043c\u0443 Rust \u043d\u0435 \u043d\u0443\u0436\u0435\u043d garbage collector  <\/h3>\n<p>\u0412 \u044f\u0437\u044b\u043a\u0430\u0445 \u0441 GC \u043e\u0431\u044a\u0435\u043a\u0442 \u0436\u0438\u0432\u0451\u0442 \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u0441\u0431\u043e\u0440\u0449\u0438\u043a \u043c\u0443\u0441\u043e\u0440\u0430 \u043d\u0435 \u0440\u0435\u0448\u0438\u0442, \u0447\u0442\u043e \u043e\u0431\u044a\u0435\u043a\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0438\u0436\u0438\u043c.<\/p>\n<p>\u0412 Rust \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0430\u0435\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0438\u0437 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438:<\/p>\n<pre><code class=\"rust\">fn main() {    {        let message = String::from(\"hello\");        println!(\"{}\", message);    }    \/\/ \u0437\u0434\u0435\u0441\u044c message \u0443\u0436\u0435 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><em>\u0417\u0434\u0435\u0441\u044c <\/em><code><em>message<\/em><\/code><em> \u0436\u0438\u0432\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u0431\u043b\u043e\u043a\u0430 <\/em><code><em>{ ... }<\/em><\/code><em>. \u041a\u043e\u0433\u0434\u0430 \u0431\u043b\u043e\u043a \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f, Rust \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0434\u0435\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u0438 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0435\u0442 \u0440\u0435\u0441\u0443\u0440\u0441\u044b.<\/em><\/p>\n<p>\u042d\u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u044c\u044e, \u043d\u043e \u0431\u0435\u0437 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e GC-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430. Rust \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f.<\/p>\n<h3>Stack \u0438 heap \u043f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438<\/h3>\n<p>\u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c Rust, \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u043c\u0435\u0436\u0434\u0443 stack \u0438 heap.<\/p>\n<p><strong>Stack<\/strong> \u2014 \u0441\u0442\u0435\u043a. \u0411\u044b\u0441\u0442\u0440\u0430\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u0438 \u0434\u043b\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430. \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0443 LIFO: last in, first out. \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u044b\u0437\u0432\u0430\u043b\u0430\u0441\u044c \u2014 \u0435\u0435 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043d\u0430 \u0441\u0442\u0435\u043a\u0435. \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u0430\u0441\u044c \u2014 \u043e\u043d\u0438 \u0438\u0441\u0447\u0435\u0437\u043b\u0438.<\/p>\n<pre><code class=\"rust\">fn sum(a: i32, b: i32) -&gt; i32 {    let result = a + b;    result}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code><em>a<\/em><\/code><em>, <\/em><code><em>b<\/em><\/code><em>, <\/em><code><em>result<\/em><\/code><em> \u2014 \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0431\u044b\u0447\u043d\u043e \u0436\u0438\u0432\u0443\u0442 \u043d\u0430 \u0441\u0442\u0435\u043a\u0435.<\/em><\/p>\n<p><strong>Heap<\/strong> \u2014 \u043a\u0443\u0447\u0430. \u041e\u0431\u043b\u0430\u0441\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u0438 \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430: \u0441\u0442\u0440\u043e\u043a, \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432, \u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432, \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438.<\/p>\n<pre><code class=\"rust\">fn main() {    let text = String::from(\"hello\");    let numbers = vec![1, 2, 3];}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code><em>String<\/em><\/code><em> \u0438 <\/em><code><em>Vec<\/em><\/code><em> \u0445\u0440\u0430\u043d\u044f\u0442 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u0441\u0442\u0435\u043a\u0435, \u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u2014 \u0432 \u043a\u0443\u0447\u0435.<\/em><\/p>\n<p>\u0414\u043b\u044f \u044f\u0432\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u043a\u0443\u0447\u0435 \u0435\u0441\u0442\u044c <code>Box&lt;T&gt;<\/code>:<\/p>\n<pre><code class=\"rust\">fn main() {    let number = Box::new(10);    println!(\"{}\", number);}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code><em>Box<\/em><\/code><em> \u043f\u043e\u043b\u0435\u0437\u0435\u043d, \u043a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u0435\u043d \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043a\u0443\u0447\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0434\u0430\u043d\u043d\u044b\u0445.<\/em><\/p>\n<h3>Option \u0432\u043c\u0435\u0441\u0442\u043e null<\/h3>\n<p>\u0412 Rust \u043d\u0435\u0442 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u043e\u0433\u043e <code>null<\/code>.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0431\u044b\u0442\u044c, \u044d\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0432\u0438\u0434\u043d\u043e \u0432 \u0442\u0438\u043f\u0435:<\/p>\n<pre><code class=\"rust\">fn find_user(id: u32) -&gt; Option&lt;String&gt; {    if id == 1 {        Some(String::from(\"Alice\"))    } else {        None    }}fn main() {    let user = find_user(2);    match user {        Some(name) =&gt; println!(\"User: {}\", name),        None =&gt; println!(\"User not found\"),    }}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code>Option&lt;T&gt;<\/code> \u2014 \u044d\u0442\u043e enum:  <\/p>\n<pre><code class=\"rust\">enum Option&lt;T&gt; {    Some(T),    None,}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421\u0430\u043c\u043e\u0435 \u0432\u0430\u0436\u043d\u043e\u0435: \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0447\u0435\u0441\u0442\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0449\u0435\u043c\u0443 \u043a\u043e\u0434\u0443, \u0447\u0442\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0431\u044b\u0442\u044c.<\/p>\n<p>\u0412 Java \u0432\u044b \u0447\u0430\u0441\u0442\u043e \u0443\u0437\u043d\u0430\u0451\u0442\u0435 \u043e <code>null<\/code> \u0443\u0436\u0435 \u0432 runtime. \u0412 Rust \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u2014 \u0447\u0430\u0441\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u0438 \u0442\u0438\u043f\u043e\u0432, \u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441 \u044d\u0442\u0438\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c\u0441\u044f.<\/p>\n<h3>Result \u0432\u043c\u0435\u0441\u0442\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439<\/h3>\n<p>Rust \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a\u0430\u043a \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u0448\u0438\u0431\u043e\u043a. \u0414\u043b\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u0435\u0441\u0442\u044c <code>Result&lt;T, E&gt;<\/code>.<\/p>\n<pre><code class=\"rust\">fn divide(a: i32, b: i32) -&gt; Result&lt;i32, String&gt; {    if b == 0 {        Err(String::from(\"division by zero\"))    } else {        Ok(a \/ b)    }}fn main() {    match divide(10, 0) {        Ok(value) =&gt; println!(\"Result: {}\", value),        Err(error) =&gt; println!(\"Error: {}\", error),    }}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code>Result&lt;T, E&gt;<\/code> \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442: \u043b\u0438\u0431\u043e <code>Ok(T)<\/code>, \u043b\u0438\u0431\u043e <code>Err(E)<\/code>.<\/p>\n<p>\u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0443 \u0447\u0430\u0441\u0442\u044c\u044e \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0441\u0440\u0430\u0437\u0443 \u0432\u0438\u0434\u0438\u0442, \u0447\u0442\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c\u0441\u044f \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e.<\/p>\n<p>\u0414\u043b\u044f \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0430\u0432\u0435\u0440\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 <code>?<\/code>:<\/p>\n<pre><code class=\"rust\">use std::fs;fn read_config() -&gt; Result&lt;String, std::io::Error&gt; {    let content = fs::read_to_string(\"config.txt\")?;    Ok(content)}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><em>\u0415\u0441\u043b\u0438 read_to_string \u0432\u0435\u0440\u043d\u0451\u0442 Ok(String), \u0441\u0442\u0440\u043e\u043a\u0430 \u043f\u043e\u043f\u0430\u0434\u0435\u0442 \u0432 content. \u0415\u0441\u043b\u0438 \u0432\u0435\u0440\u043d\u0435\u0442 Err(std::io::Error), \u043e\u0448\u0438\u0431\u043a\u0430 \u0441\u0440\u0430\u0437\u0443 \u0432\u0435\u0440\u043d\u0435\u0442\u0441\u044f \u0438\u0437 read_config.<\/em><\/p>\n<p> <code>?<\/code> \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442 \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d <code>match Ok\/Err<\/code> \u0438 \u0434\u0435\u043b\u0430\u0435\u0442 \u043a\u043e\u0434 \u043a\u043e\u0440\u043e\u0447\u0435 \u0431\u0435\u0437 \u0441\u043a\u0440\u044b\u0442\u044b\u0445 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439. <\/p>\n<h3>match: \u043d\u0435 switch, \u0430 \u043c\u043e\u0449\u043d\u0435\u0435<\/h3>\n<p><code>match<\/code> \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 <code>switch<\/code>, \u043d\u043e \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u0441\u0438\u043b\u044c\u043d\u0435\u0435. \u041e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 enum, \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u043c\u0438, \u043a\u043e\u0440\u0442\u0435\u0436\u0430\u043c\u0438, \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430\u043c\u0438 \u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c\u0438.<\/p>\n<pre><code class=\"rust\">fn main() {    let status = divide(10, 2);    match status {        Ok(value) =&gt; println!(\"Result: {}\", value),        Err(error) =&gt; println!(\"Error: {}\", error),    }}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u0443 enum \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432, Rust \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432\u0441\u0435. \u042d\u0442\u043e \u0441\u043d\u0438\u0436\u0430\u0435\u0442 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u0431\u044b\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439.<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<pre><code class=\"rust\">enum PaymentStatus {    Paid,    Pending,    Failed(String),}fn print_status(status: PaymentStatus) {    match status {        PaymentStatus::Paid =&gt; println!(\"paid\"),        PaymentStatus::Pending =&gt; println!(\"pending\"),        PaymentStatus::Failed(reason) =&gt; println!(\"failed: {}\", reason),    }}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u0437\u0430\u0432\u0442\u0440\u0430 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043d\u043e\u0432\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 <code>Refunded<\/code>, \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043f\u043e\u043a\u0430\u0436\u0435\u0442 \u043c\u0435\u0441\u0442\u0430, \u0433\u0434\u0435 <code>match<\/code> \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043f\u043e\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0432\u0441\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b. \u0414\u043b\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u043a\u043e\u0434\u0430 \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0441\u0438\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0449\u044c.<\/p>\n<h3>Traits: \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b, \u043d\u043e \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c<\/h3>\n<p><code>trait<\/code> \u0432 Rust \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0432 Java \u0438\u043b\u0438 TypeScript: \u043e\u043d \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0438\u043f.<\/p>\n<pre><code class=\"rust\">trait Drawable {    fn draw(&amp;self);}struct Button {    label: String,}impl Drawable for Button {    fn draw(&amp;self) {        println!(\"Drawing button: {}\", self.label);    }}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p> \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0432\u0441\u0435, \u0447\u0442\u043e \u0443\u043c\u0435\u0435\u0442 \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c\u0441\u044f:  <\/p>\n<pre><code class=\"rust\">fn render(item: &amp;impl Drawable) {    item.draw();}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u0438 \u0432\u0430\u0436\u043d\u043e \u043d\u0435 \u0442\u043e, \u043a\u0430\u043a\u043e\u0439 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u0442\u0438\u043f \u043f\u0435\u0440\u0435\u0434\u0430\u043b\u0438, \u0430 \u043a\u0430\u043a\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043e\u043d \u0443\u043c\u0435\u0435\u0442 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c. <\/p>\n<h3>Fearless Concurrency (\u0431\u0435\u0441\u0441\u0442\u0440\u0430\u0448\u043d\u0430\u044f \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c)<\/h3>\n<p>Rust \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043f\u0438\u0441\u0430\u0442\u044c \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u044b\u0439 \u043a\u043e\u0434 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0435\u0435. \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043d\u0435 \u0434\u0430\u0441\u0442 \u0432\u0430\u043c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0433\u043e\u043d\u043a\u0443 \u0434\u0430\u043d\u043d\u044b\u0445. \u042d\u0442\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0446\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432, \u043c\u0435\u0441\u0441\u0435\u043d\u0434\u0436\u0435\u0440\u043e\u0432, \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0438 \u0432\u044b\u0441\u043e\u043a\u043e\u043d\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c.<\/p>\n<h3>Zero-cost abstractions: \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0439 \u043a\u043e\u0434 \u0431\u0435\u0437 \u043b\u0438\u0448\u043d\u0435\u0439 \u0446\u0435\u043d\u044b<\/h3>\n<p>\u041e\u0434\u0438\u043d \u0438\u0437 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u043e\u0432 Rust \u2014 zero-cost abstractions.<\/p>\n<p>\u0421\u043c\u044b\u0441\u043b \u043d\u0435 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043b\u044e\u0431\u0430\u044f \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u044f \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u0430. \u0421\u043c\u044b\u0441\u043b \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043c\u043d\u043e\u0433\u0438\u0435 \u0443\u0434\u043e\u0431\u043d\u044b\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432 \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u0431\u0435\u0437 \u043b\u0438\u0448\u043d\u0435\u0439 runtime-\u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u0440\u0443\u0447\u043d\u044b\u043c \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u043c.<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u044b:<\/p>\n<pre><code class=\"rust\">fn sum_even_squares(values: &amp;[i32]) -&gt; i32 {    values        .iter()        .filter(|x| **x % 2 == 0)        .map(|x| x * x)        .sum()}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041a\u043e\u0434 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u043c: <code>filter<\/code>, <code>map<\/code>, <code>sum<\/code>. \u041d\u043e \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043c\u043e\u0436\u0435\u0442 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u0443\u044e \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u0432 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0439 \u043a\u043e\u0434. \u041e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u0440\u043e\u0434\u0435 <code>map<\/code>, <code>filter<\/code>, <code>reduce<\/code> \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043a\u043e\u0434, \u0441\u0442\u043e\u043b\u044c \u0436\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439, \u043a\u0430\u043a \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u044b\u0435 \u0438\u043c\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438.   <\/p>\n<h3>Unsafe Rust: \u0435\u0441\u043b\u0438 Rust \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439, \u0437\u0430\u0447\u0435\u043c \u0435\u043c\u0443 unsafe<\/h3>\n<p>Rust \u043d\u0435 \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u0442 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435. \u0414\u043b\u044f \u0437\u0430\u0434\u0430\u0447, \u0433\u0434\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c, \u0435\u0441\u0442\u044c <code>unsafe<\/code>.<\/p>\n<p>\u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u043a\u043d\u0438\u0433\u0430 Rust \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043f\u044f\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 <code>unsafe<\/code>: \u0440\u0430\u0437\u044b\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 raw pointer, \u0432\u044b\u0437\u043e\u0432 unsafe-\u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0434\u043e\u0441\u0442\u0443\u043f \u0438\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 mutable static, \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f unsafe trait \u0438 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043f\u043e\u043b\u044f\u043c union. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c <code>unsafe<\/code> \u043d\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432\u0435\u0441\u044c borrow checker \u0438 \u0432\u0441\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 Rust: \u043e\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0430\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c, \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u043e\u043b\u0436\u0435\u043d \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0430\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a. <\/p>\n<p><strong>\u0417\u0430\u0447\u0435\u043c \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e? <\/strong>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<ul>\n<li>\n<p> \u043f\u0438\u0441\u0430\u0442\u044c \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u044b; <\/p>\n<\/li>\n<li>\n<p> \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 C-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438 \u0447\u0435\u0440\u0435\u0437 FFI; <\/p>\n<\/li>\n<li>\n<p> \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445; <\/p>\n<\/li>\n<li>\n<p> \u043f\u0438\u0441\u0430\u0442\u044c \u044f\u0434\u0440\u043e \u041e\u0421; <\/p>\n<\/li>\n<li>\n<p> \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0433\u043e\u0440\u044f\u0447\u0438\u0435 \u0443\u0447\u0430\u0441\u0442\u043a\u0438 \u043a\u043e\u0434\u0430; <\/p>\n<\/li>\n<li>\n<p> \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441 \u0436\u0435\u043b\u0435\u0437\u043e\u043c. <\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 raw pointer:<\/p>\n<pre><code class=\"rust\">fn main() {    let mut value = 10;    let ptr = &amp;mut value as *mut i32;    unsafe {        *ptr += 1;    }    println!(\"{}\", value);}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412 safe Rust \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441\u043e \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438 <code>&amp;T<\/code> \u0438 <code>&amp;mut T<\/code>. Raw pointers <code><em>const T<\/em><\/code><em> \u0438 <\/em><code>mut T<\/code> \u043f\u043e\u0445\u043e\u0436\u0438 \u043d\u0430 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438 C\/C++, \u043d\u043e Rust \u043d\u0435 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442 \u0438\u0445 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c. \u0421\u043e\u0437\u0434\u0430\u0442\u044c raw pointer \u043c\u043e\u0436\u043d\u043e \u0432 safe-\u043a\u043e\u0434\u0435, \u0430 \u0432\u043e\u0442 \u0440\u0430\u0437\u044b\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 <code>unsafe<\/code>.<\/p>\n<p>\u0425\u043e\u0440\u043e\u0448\u0430\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430: unsafe-\u043a\u043e\u0434\u0430 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043c\u0430\u043b\u043e, \u043e\u043d \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d \u0438 \u0437\u0430\u043a\u0440\u044b\u0442 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u043c API.<\/p>\n<h2>\u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 Rust-\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430<\/h2>\n<h3>Rust \u2014 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u044f\u0437\u044b\u043a<\/h3>\n<p>Rust \u2014\u00a0<strong>\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c\u044b\u0439<\/strong>\u00a0\u044f\u0437\u044b\u043a. \u0423 \u043d\u0435\u0433\u043e \u043d\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u0430 \u0432 \u0441\u0442\u0438\u043b\u0435 Python \u0438\u043b\u0438 JavaScript. \u0412\u044b \u043f\u0438\u0448\u0435\u0442\u0435 \u043a\u043e\u0434, \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0435\u0433\u043e \u0432 \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 (\u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u00a0<strong>LLVM<\/strong>), \u0438 \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b (\u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a).<\/p>\n<p><strong>\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0442\u0435\u0440\u043c\u0438\u043d\u044b:<\/strong><\/p>\n<ul>\n<li>\n<p><strong>\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440<\/strong>\u00a0\u2014 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0432 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b (<code>rustc<\/code>);<\/p>\n<\/li>\n<li>\n<p><strong>\u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440<\/strong>\u00a0\u2014 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043a\u043e\u0434 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e (Python, Ruby, JS);<\/p>\n<\/li>\n<li>\n<p><strong>LLVM<\/strong>\u00a0\u2014 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0430\u044f Rust, Swift, Clang \u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043f\u043e\u0434 \u0440\u0430\u0437\u043d\u044b\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b;<\/p>\n<\/li>\n<li>\n<p><strong>crate<\/strong>\u00a0\u2014 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0438 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u044f\u0437\u044b\u043a\u0430. \u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0438 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u044f\u0437\u044b\u043a\u0430\u043c\u0438, \u0442\u043e \u044d\u0442\u043e \u0430\u043d\u0430\u043b\u043e\u0433 \u00ab\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438\u00bb (library) \u0438\u043b\u0438 \u00ab\u043f\u0430\u043a\u0435\u0442\u0430\u00bb (package). \u0412\u0441\u0435, \u0447\u0442\u043e \u0432\u044b \u043f\u0438\u0448\u0435\u0442\u0435 \u043d\u0430 Rust, \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0438\u0442\u043e\u0433\u0435 \u0443\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043a\u0440\u0435\u0439\u0442.<\/p>\n<\/li>\n<li>\n<p><strong>Cargo<\/strong>\u00a0\u2014 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0441\u0431\u043e\u0440\u043a\u0438 \u0438 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439.<\/p>\n<\/li>\n<\/ul>\n<h3>\u0414\u0432\u0430 \u0442\u0438\u043f\u0430 \u043a\u0440\u0435\u0439\u0442\u043e\u0432<\/h3>\n<p>\u041a\u0440\u0435\u0439\u0442\u044b \u0434\u0435\u043b\u044f\u0442\u0441\u044f \u043d\u0430 \u0434\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0438\u0445 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:<\/p>\n<ul>\n<li>\n<p><strong>Binary Crate (\u0411\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u043a\u0440\u0435\u0439\u0442):<\/strong> \u042d\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b. \u0422\u0430\u043a\u043e\u0439 \u043a\u0440\u0435\u0439\u0442 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>main()<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u0447\u043a\u043e\u0439 \u0432\u0445\u043e\u0434\u0430. \u041e\u0431\u044b\u0447\u043d\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c \u0444\u0430\u0439\u043b\u043e\u043c \u0442\u0430\u043a\u043e\u0433\u043e \u043a\u0440\u0435\u0439\u0442\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <code>src\/<\/code><a href=\"http:\/\/main.rs\" rel=\"noopener noreferrer nofollow\"><code>main.rs<\/code><\/a>.<\/p>\n<\/li>\n<li>\n<p><strong>Library Crate (\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u0447\u043d\u044b\u0439 \u043a\u0440\u0435\u0439\u0442):<\/strong> \u042d\u0442\u043e \u043d\u0430\u0431\u043e\u0440 \u043a\u043e\u0434\u0430 (\u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0442\u0438\u043f\u043e\u0432, \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440), \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0439 \u0434\u043b\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445. \u0412 \u043d\u0435\u043c \u043d\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>main()<\/code>, \u0438 \u043e\u043d \u043d\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0441\u0430\u043c \u043f\u043e \u0441\u0435\u0431\u0435. \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0444\u0430\u0439\u043b \u2014 <code>src\/<\/code><a href=\"http:\/\/lib.rs\" rel=\"noopener noreferrer nofollow\"><code>lib.rs<\/code><\/a>.<\/p>\n<\/li>\n<\/ul>\n<h3>Cargo: \u043f\u043e\u0447\u0435\u043c\u0443 tooling Rust \u0442\u0430\u043a \u0445\u0432\u0430\u043b\u044f\u0442<\/h3>\n<p>Cargo \u2014 \u044d\u0442\u043e package manager, build system, test runner \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0432 \u043e\u0434\u043d\u043e\u043c. \u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f Cargo \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0435\u0433\u043e \u043a\u0430\u043a \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 Rust, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u0442 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438, \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442 \u043f\u0430\u043a\u0435\u0442\u044b, \u0434\u0435\u043b\u0430\u0435\u0442 distributable packages \u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0438\u0445 \u043d\u0430 <a href=\"http:\/\/crates.io\" rel=\"noopener noreferrer nofollow\">crates.io<\/a>.<\/p>\n<p>\u0414\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0438\u0437 JS-\u043c\u0438\u0440\u0430 Cargo \u043c\u043e\u0436\u043d\u043e \u0433\u0440\u0443\u0431\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u0430\u043a \u201cnpm + build tool + test runner + documentation tool\u201d. \u041d\u043e \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043c\u043d\u043e\u0433\u0438\u0445 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c, \u0437\u0434\u0435\u0441\u044c \u044d\u0442\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043f\u0443\u0442\u044c, \u0430 \u043d\u0435 \u043d\u0430\u0431\u043e\u0440 \u0440\u0430\u0437\u0440\u043e\u0437\u043d\u0435\u043d\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439.<\/p>\n<p>Stack Overflow Developer Survey 2025 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043e\u0442\u043c\u0435\u0447\u0430\u0435\u0442 Cargo \u043a\u0430\u043a \u0441\u0430\u043c\u044b\u0439 admired cloud development and infrastructure tool \u0441 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u043c \u043e\u043a\u043e\u043b\u043e 71%. Rust \u0442\u0430\u043c \u0436\u0435 \u0441\u043d\u043e\u0432\u0430 \u043d\u0430\u0437\u0432\u0430\u043d \u0441\u0430\u043c\u044b\u043c admired programming language \u0441 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u043c \u043e\u043a\u043e\u043b\u043e 72%. <\/p>\n<p><strong>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b:<\/strong><\/p>\n<ul>\n<li>\n<p>\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 (<code>cargo new<\/code>);<\/p>\n<\/li>\n<li>\n<p>\u0441\u0431\u043e\u0440\u043a\u0430 (<code>cargo build<\/code>,\u00a0<code>cargo build --release<\/code>);<\/p>\n<\/li>\n<li>\n<p>\u0437\u0430\u043f\u0443\u0441\u043a (<code>cargo run<\/code>);<\/p>\n<\/li>\n<li>\n<p>\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 (<code>cargo test<\/code>);<\/p>\n<\/li>\n<li>\n<p>\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430 (<code>cargo fmt<\/code>);<\/p>\n<\/li>\n<li>\n<p>\u043b\u0438\u043d\u0442\u0438\u043d\u0433 (<code>cargo clippy<\/code>);<\/p>\n<\/li>\n<li>\n<p>\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 (<code>cargo doc<\/code>).<\/p>\n<\/li>\n<\/ul>\n<h3>Crates: \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 Rust<\/h3>\n<p><strong>Crate<\/strong> \u2014 \u043f\u0430\u043a\u0435\u0442 \u0438\u043b\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0432 Rust.<\/p>\n<p><strong>crates.io<\/strong> \u2014 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u0435\u0441\u0442\u0440 \u043f\u0430\u043a\u0435\u0442\u043e\u0432.<\/p>\n<p>Rust-\u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043c\u0435\u043d\u044c\u0448\u0435, \u0447\u0435\u043c npm, Maven \u0438\u043b\u0438 PyPI, \u043d\u043e \u0432\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u0445 \u043e\u043d\u0430 \u0443\u0436\u0435 \u043e\u0447\u0435\u043d\u044c <strong>\u0437\u0440\u0435\u043b\u0430\u044f.<\/strong><\/p>\n<p><strong>\u0427\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f:<\/strong><\/p>\n<ul>\n<li>\n<p><code>serde<\/code>, <code>serde_json<\/code> \u2014 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0438 \u0434\u0435\u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f; <\/p>\n<\/li>\n<li>\n<p><code>tokio<\/code>, <code>async-std<\/code> \u2014 async runtime; <\/p>\n<\/li>\n<li>\n<p><code>axum<\/code>, <code>actix-web<\/code>, <code>rocket<\/code> \u2014 web backend; <\/p>\n<\/li>\n<li>\n<p><code>reqwest<\/code>, <code>hyper<\/code> \u2014 HTTP; <\/p>\n<\/li>\n<li>\n<p><code>clap<\/code> \u2014 CLI-\u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b; <\/p>\n<\/li>\n<li>\n<p><code>anyhow<\/code>, <code>thiserror<\/code> \u2014 \u043e\u0448\u0438\u0431\u043a\u0438; <\/p>\n<\/li>\n<li>\n<p><code>tracing<\/code> \u2014 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 observability; <\/p>\n<\/li>\n<li>\n<p><code>sqlx<\/code>, <code>diesel<\/code>, <code>sea-orm<\/code> \u2014 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445; <\/p>\n<\/li>\n<li>\n<p><code>wasm-bindgen<\/code>, <code>wasm-pack<\/code> \u2014 WebAssembly; <\/p>\n<\/li>\n<li>\n<p><code>tauri<\/code>, <code>egui<\/code> \u2014 desktop\/cross-platform UI; <\/p>\n<\/li>\n<li>\n<p><code>polars<\/code>, <code>datafusion<\/code> \u2014 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445; <\/p>\n<\/li>\n<li>\n<p><code>rayon<\/code> \u2014 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<h2>\u0418\u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438 \u043d\u0435 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0435\u0442 Rust<\/h2>\n<p>Rust \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c\u0438 \u0432\u0441\u0435 \u043e\u0448\u0438\u0431\u043a\u0438, \u043d\u043e \u0440\u0435\u0437\u043a\u043e \u0441\u043d\u0438\u0436\u0430\u0435\u0442 \u043a\u043b\u0430\u0441\u0441 <strong>memory safety<\/strong> \u043f\u0440\u043e\u0431\u043b\u0435\u043c.<\/p>\n<p><strong>\u041e\u043d \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438:<\/strong><\/p>\n<ul>\n<li>\n<p>use-after-free,<\/p>\n<\/li>\n<li>\n<p>buffer overflow\/over-read (\u0432 safe-\u043a\u043e\u0434\u0435),<\/p>\n<\/li>\n<li>\n<p>data race \u0432 \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u043c \u043a\u043e\u0434\u0435,<\/p>\n<\/li>\n<li>\n<p>dangling pointers \u0438 \u0442.\u0434.<\/p>\n<\/li>\n<\/ul>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u0432\u0430\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c: Rust \u2260 \u043f\u043e\u043b\u043d\u0430\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. <\/p>\n<p><strong>\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043d\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442 \u0437\u0430 \u0432\u0430\u0441:<\/strong><\/p>\n<ul>\n<li>\n<p>\u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b;<\/p>\n<\/li>\n<li>\n<p>\u0431\u0438\u0437\u043d\u0435\u0441-\u043b\u043e\u0433\u0438\u043a\u0443;<\/p>\n<\/li>\n<li>\n<p>\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043a\u043b\u044e\u0447\u0435\u0439;<\/p>\n<\/li>\n<li>\n<p>privacy-\u043c\u043e\u0434\u0435\u043b\u044c;<\/p>\n<\/li>\n<li>\n<p>\u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 \u0434\u043e\u0441\u0442\u0443\u043f\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u0442\u0438\u043f\u0430 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u0448\u0438\u0431\u043e\u043a, \u0438\u043d\u044a\u0435\u043a\u0446\u0438\u0439 \u0438\u043b\u0438 \u043d\u0435\u0432\u0435\u0440\u043d\u044b\u0445 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0439.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043c\u0435\u0441\u0441\u0435\u043d\u0434\u0436\u0435\u0440 XChat, \u043f\u043e \u0437\u0430\u044f\u0432\u043b\u0435\u043d\u0438\u044e, \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 Rust, \u044d\u0442\u043e \u043d\u0435 \u0434\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0435\u0433\u043e \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u0443\u044e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c. \u042f\u0437\u044b\u043a \u2014 \u043b\u0438\u0448\u044c \u043e\u0434\u0438\u043d \u0438\u0437 \u0441\u043b\u043e\u0435\u0432 \u0437\u0430\u0449\u0438\u0442\u044b.<\/p>\n<h2>\u041f\u043b\u044e\u0441\u044b \u0438 \u043c\u0438\u043d\u0443\u0441\u044b Rust  <\/h2>\n<h3>\u041f\u043b\u044e\u0441\u044b Rust<\/h3>\n<p>\u0413\u043b\u0430\u0432\u043d\u044b\u0435 \u043f\u043b\u044e\u0441\u044b Rust:<\/p>\n<ul>\n<li>\n<p> \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u0438 \u0431\u0435\u0437 GC; <\/p>\n<\/li>\n<li>\n<p> \u0432\u044b\u0441\u043e\u043a\u0430\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c; <\/p>\n<\/li>\n<li>\n<p> \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e runtime; <\/p>\n<\/li>\n<li>\n<p> \u0441\u0442\u0440\u043e\u0433\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0442\u0438\u043f\u043e\u0432; <\/p>\n<\/li>\n<li>\n<p><code>Option&lt;T&gt;<\/code> \u0432\u043c\u0435\u0441\u0442\u043e <code>null<\/code>; <\/p>\n<\/li>\n<li>\n<p><code>Result&lt;T, E&gt;<\/code> \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u043a\u0440\u044b\u0442\u044b\u0445 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439; <\/p>\n<\/li>\n<li>\n<p> \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0430\u044f \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c; <\/p>\n<\/li>\n<li>\n<p> \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 tooling; <\/p>\n<\/li>\n<li>\n<p> Cargo \u0438 <a href=\"http:\/\/crates.io\" rel=\"noopener noreferrer nofollow\">crates.io<\/a>; <\/p>\n<\/li>\n<li>\n<p> \u0445\u043e\u0440\u043e\u0448\u0430\u044f \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0441 C \u0447\u0435\u0440\u0435\u0437 FFI; <\/p>\n<\/li>\n<li>\n<p> \u0441\u0438\u043b\u044c\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f; <\/p>\n<\/li>\n<li>\n<p> \u0445\u043e\u0440\u043e\u0448\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430; <\/p>\n<\/li>\n<li>\n<p> \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. <\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u043e \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u043f\u043b\u044e\u0441 \u0434\u0430\u0436\u0435 \u043d\u0435 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439. Rust \u043c\u0435\u043d\u044f\u0435\u0442 \u043c\u044b\u0448\u043b\u0435\u043d\u0438\u0435. \u041e\u043d \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u0443\u043c\u0430\u0442\u044c \u043e \u0432\u043b\u0430\u0434\u0435\u043d\u0438\u0438, \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u043e\u043c \u0446\u0438\u043a\u043b\u0435 \u0434\u0430\u043d\u043d\u044b\u0445, \u043e\u0448\u0438\u0431\u043a\u0430\u0445 \u0438 \u043f\u043e\u0442\u043e\u043a\u0430\u0445 \u043d\u0435 \u043f\u043e\u0441\u043b\u0435 \u043f\u0430\u0434\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430.<\/p>\n<h3>\u041c\u0438\u043d\u0443\u0441\u044b Rust<\/h3>\n<p>\u041c\u0438\u043d\u0443\u0441\u044b \u0442\u043e\u0436\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435.<\/p>\n<p>\u0421\u0430\u043c\u044b\u0435 \u0437\u0430\u043c\u0435\u0442\u043d\u044b\u0435:<\/p>\n<ul>\n<li>\n<p> \u0432\u044b\u0441\u043e\u043a\u0438\u0439 \u043f\u043e\u0440\u043e\u0433 \u0432\u0445\u043e\u0434\u0430; <\/p>\n<\/li>\n<li>\n<p> ownership \u0438 borrowing \u0440\u0430\u0437\u0434\u0440\u0430\u0436\u0430\u044e\u0442 \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432; <\/p>\n<\/li>\n<li>\n<p> lifetimes \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0441\u043b\u043e\u0436\u043d\u044b\u043c\u0438; <\/p>\n<\/li>\n<li>\n<p> \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u0438\u043d\u043e\u0433\u0434\u0430 \u0434\u043e\u043b\u0433\u0430\u044f; <\/p>\n<\/li>\n<li>\n<p> async Rust \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043f\u0440\u0438\u0432\u044b\u043a\u0430\u043d\u0438\u044f; <\/p>\n<\/li>\n<li>\n<p> \u043c\u0435\u043d\u044c\u0448\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a, \u0447\u0435\u043c \u0443 Java\/Node\/Python \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u043e\u043c\u0435\u043d\u0430\u0445; <\/p>\n<\/li>\n<li>\n<p> \u043c\u0435\u043d\u044c\u0448\u0435 \u0432\u0430\u043a\u0430\u043d\u0441\u0438\u0439, \u0447\u0435\u043c \u0434\u043b\u044f \u043c\u0430\u0441\u0441\u043e\u0432\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432; <\/p>\n<\/li>\n<li>\n<p> \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438; <\/p>\n<\/li>\n<li>\n<p> unsafe-\u043a\u043e\u0434 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0434\u0438\u0441\u0446\u0438\u043f\u043b\u0438\u043d\u044b; <\/p>\n<\/li>\n<li>\n<p> \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0433\u0440\u0430\u0444\u044b \u0441 \u0434\u0432\u0443\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438, \u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043b\u043e\u0436\u043d\u0435\u0435, \u0447\u0435\u043c \u0432 \u044f\u0437\u044b\u043a\u0430\u0445 \u0441 GC. <\/p>\n<\/li>\n<\/ul>\n<p>Rust \u0443\u0434\u043e\u0431\u0435\u043d \u043d\u0435 \u0432\u043e \u0432\u0441\u0435\u043c: \u0434\u0432\u0443\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438, <code>Rc<\/code>, <code>Weak<\/code>, <code>RefCell<\/code>, \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0441\u0442\u044c \u0438 \u0433\u0440\u0430\u0444\u043e\u0432\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0438 \u0432\u043b\u0430\u0434\u0435\u043d\u0438\u044f. \u042d\u0442\u043e \u043d\u0435 \u201c\u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u201d, \u043d\u043e \u0442\u043e\u0447\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435, \u0447\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0438 \u0432 \u044f\u0437\u044b\u043a\u0435 \u0441 GC.<\/p>\n<h2>\u041f\u043e\u0447\u0435\u043c\u0443 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 \u0447\u0430\u0441\u0442\u0438 \u0441\u0438\u0441\u0442\u0435\u043c \u043d\u0430 Rust<\/h2>\n<p>\u041e\u0431\u044b\u0447\u043d\u043e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u043d\u0435 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 \u0432\u0435\u0441\u044c \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u043d\u0430 Rust. \u042d\u0442\u043e \u0434\u043e\u0440\u043e\u0433\u043e, \u0440\u0438\u0441\u043a\u043e\u0432\u0430\u043d\u043d\u043e \u0438 \u0447\u0430\u0441\u0442\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e.<\/p>\n<p>\u0413\u043e\u0440\u0430\u0437\u0434\u043e \u0447\u0430\u0449\u0435 Rust \u0432\u043d\u0435\u0434\u0440\u044f\u044e\u0442 \u0442\u043e\u0447\u0435\u0447\u043d\u043e: \u0432 \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b, \u043f\u0430\u0440\u0441\u0435\u0440\u044b, sandbox, \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044e, CLI, \u0430\u0433\u0435\u043d\u0442\u044b, runtime-\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b, \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u044b, \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0441 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439.<\/p>\n<p><strong>\u041f\u0440\u0438\u0447\u0438\u043d\u044b \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u0440\u0430\u0433\u043c\u0430\u0442\u0438\u0447\u043d\u044b\u0435:<\/strong><\/p>\n<ul>\n<li>\n<p><strong>\u0421\u043d\u0438\u0436\u0435\u043d\u0438\u0435 memory-safety \u0440\u0438\u0441\u043a\u043e\u0432<\/strong>\u00a0\u2014 \u043c\u0435\u043d\u044c\u0448\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0436\u0438\u0442\u044c \u0433\u043e\u0434\u0430\u043c\u0438.<\/p>\n<\/li>\n<li>\n<p><strong>\u0412\u044b\u0448\u0435 \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u044c<\/strong>\u00a0\u2014 Rust-\u043a\u043e\u0434 \u0440\u0435\u0436\u0435 \u043f\u0430\u0434\u0430\u0435\u0442 \u0432 production \u0438\u0437-\u0437\u0430 \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p><strong>\u041c\u0435\u043d\u044c\u0448\u0435 \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u043e\u0432<\/strong>\u00a0\u2014 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0442\u0440\u0430\u0442\u044f\u0442 \u043c\u0435\u043d\u044c\u0448\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0430 \u043e\u0442\u043b\u0430\u0434\u043a\u0443 \u0431\u0430\u0433\u043e\u0432, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f\u043c\u0438.<\/p>\n<\/li>\n<li>\n<p><strong>\u041b\u0443\u0447\u0448\u0438\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432<\/strong>\u00a0\u2014 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 GC \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0442\u043e\u0447\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 CPU.<\/p>\n<\/li>\n<li>\n<p><strong>\u042d\u043a\u043e\u043d\u043e\u043c\u0438\u044f \u043d\u0430 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435<\/strong>\u00a0\u2014 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u043c\u043e\u0436\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0442\u0443 \u0436\u0435 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043d\u0430 \u043c\u0435\u043d\u044c\u0448\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432.<\/p>\n<\/li>\n<\/ul>\n<p>Google \u043f\u0438\u0448\u0435\u0442, \u0447\u0442\u043e \u0432 Android \u043f\u043e\u0434\u0445\u043e\u0434 \u0441 Rust \u0443\u0436\u0435 \u0434\u0430\u043b \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u0439 \u044d\u0444\u0444\u0435\u043a\u0442: \u0432 \u0434\u0430\u043d\u043d\u044b\u0445 2025 \u0433\u043e\u0434\u0430 memory safety vulnerabilities \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u0443\u043f\u0430\u043b\u0438 \u043d\u0438\u0436\u0435 20% \u043e\u0442 \u043e\u0431\u0449\u0435\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439, \u0430 Rust-\u043a\u043e\u0434 \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u043c\u0435\u043d\u044c\u0448\u0443\u044e density memory-safety \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 C\/C++. <\/p>\n<p>\u0412 Linux kernel \u0435\u0441\u0442\u044c \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e Rust \u0432\u043d\u0443\u0442\u0440\u0438 \u044f\u0434\u0440\u0430. \u042d\u0442\u043e \u043d\u0435 \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u044f\u0434\u0440\u043e Linux \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 \u043d\u0430 Rust \u0446\u0435\u043b\u0438\u043a\u043e\u043c, \u043d\u043e Rust \u0441\u0442\u0430\u043b \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0434\u043b\u044f \u0447\u0430\u0441\u0442\u0438 kernel-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. <\/p>\n<p>Microsoft \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 Rust for Windows Drivers: \u0432 2025 \u0433\u043e\u0434\u0443 Microsoft \u043f\u0438\u0441\u0430\u043b\u0430 \u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 Rust \u0434\u043b\u044f Windows-\u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432 \u0438 \u0441\u0432\u043e\u0451\u043c \u0432\u0438\u0434\u0435\u043d\u0438\u0438 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f. <\/p>\n<p>AWS Firecracker \u2014 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0430 Rust: AWS \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b\u0430 Firecracker \u043a\u0430\u043a lightweight virtualization technology \u0434\u043b\u044f serverless workloads, \u0430 \u0432 \u0430\u043d\u043e\u043d\u0441\u0430\u0445 \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u0438\u0432\u0430\u043b\u0430 \u0432\u044b\u0431\u043e\u0440 Rust \u0438\u0437-\u0437\u0430 thread safety \u0438 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043c\u043d\u043e\u0433\u0438\u0445 buffer overrun \u043e\u0448\u0438\u0431\u043e\u043a. <\/p>\n<p>Cloudflare \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 Rust \u0432 Pingora \u2014 \u0441\u0432\u043e\u0435\u043c \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0435 \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u044b\u0445 \u0438 \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c. Cloudflare \u043f\u0438\u0441\u0430\u043b\u0430, \u0447\u0442\u043e Pingora, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u043d\u0430 Rust, \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438. <\/p>\n<p>\u0418\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, Rust \u0432\u044b\u0431\u0438\u0440\u0430\u044e\u0442 \u043d\u0435 \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043e\u043d \u043c\u043e\u0434\u043d\u044b\u0439. <strong>\u0415\u0433\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u044e\u0442 \u0442\u0430\u043c, \u0433\u0434\u0435 \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0430\u043c\u044f\u0442\u0438, \u043b\u0438\u0448\u043d\u044f\u044f \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u0438\u043b\u0438 \u043d\u0435\u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0441\u0442\u043e\u044f\u0442 \u0434\u043e\u0440\u043e\u0433\u043e.<\/strong><\/p>\n<h2>\u0413\u0434\u0435 Rust \u043b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c<\/h2>\n<p>Rust \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0441\u0438\u043b\u0435\u043d \u0442\u0430\u043c, \u0433\u0434\u0435 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0432\u0430\u0436\u043d\u044b \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c, \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u044c \u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c.<\/p>\n<p>\u0425\u043e\u0440\u043e\u0448\u0438\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438:<\/p>\n<ul>\n<li>\n<p> backend \u0438 \u0432\u044b\u0441\u043e\u043a\u043e\u043d\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b; <\/p>\n<\/li>\n<li>\n<p> API, proxy, realtime-\u0441\u0435\u0440\u0432\u0438\u0441\u044b, \u043e\u0447\u0435\u0440\u0435\u0434\u0438; <\/p>\n<\/li>\n<li>\n<p> CLI-\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b; <\/p>\n<\/li>\n<li>\n<p> \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435; <\/p>\n<\/li>\n<li>\n<p> \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u044b, \u044f\u0434\u0440\u043e, \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438; <\/p>\n<\/li>\n<li>\n<p> embedded \u0438 IoT; <\/p>\n<\/li>\n<li>\n<p> WebAssembly; <\/p>\n<\/li>\n<li>\n<p> \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044f \u0438 security-sensitive software; <\/p>\n<\/li>\n<li>\n<p> \u043f\u0430\u0440\u0441\u0435\u0440\u044b; <\/p>\n<\/li>\n<li>\n<p> data processing; <\/p>\n<\/li>\n<li>\n<p> blockchain \u0438 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430.<\/p>\n<\/li>\n<\/ul>\n<h2>\u0413\u0434\u0435 Rust \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043b\u043e\u0445\u0438\u043c \u0432\u044b\u0431\u043e\u0440\u043e\u043c<\/h2>\n<p>Rust \u043d\u0435 \u043d\u0443\u0436\u0435\u043d \u0432\u0435\u0437\u0434\u0435.<\/p>\n<p>\u041e\u043d \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043b\u043e\u0445\u0438\u043c \u0432\u044b\u0431\u043e\u0440\u043e\u043c, \u0435\u0441\u043b\u0438 \u0432\u044b \u0434\u0435\u043b\u0430\u0435\u0442\u0435 MVP \u0437\u0430 \u0434\u0432\u0430 \u0434\u043d\u044f, \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u0430\u0434\u043c\u0438\u043d\u043a\u0443, \u043e\u0431\u044b\u0447\u043d\u044b\u0439 CRUD-backend \u0438\u043b\u0438 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432\u0443\u044e \u0444\u0438\u0447\u0443, \u0433\u0434\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0441\u0438\u043b\u044c\u043d\u0435\u0435 \u0432 Java, Node.js, Go \u0438\u043b\u0438 Python.<\/p>\n<p>Rust \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u0435\u043d, \u0435\u0441\u043b\u0438 \u0433\u043b\u0430\u0432\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u2014 \u0431\u044b\u0441\u0442\u0440\u043e \u043d\u0430\u043d\u044f\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443, \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0433\u0438\u043f\u043e\u0442\u0435\u0437\u0443 \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u0433\u0434\u0435 Python\/Java\/JS \u0434\u0430\u044e\u0442 \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0431\u044b\u0441\u0442\u0440\u0435\u0435.<\/p>\n<p>\u0415\u0449\u0435 \u043e\u0434\u0438\u043d \u0447\u0435\u0441\u0442\u043d\u044b\u0439 \u043c\u0438\u043d\u0443\u0441 \u2014 learning curve. Ownership, borrowing \u0438 lifetimes \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0435\u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435 \u043c\u043e\u0436\u0435\u0442 \u0438\u0434\u0442\u0438 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435. \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c \u0437\u0430\u043c\u0435\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f. Async Rust \u0441\u043b\u043e\u0436\u043d\u0435\u0435, \u0447\u0435\u043c async \u0432 JS \u0438\u043b\u0438 Go.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 Rust \u2014 \u043d\u0435 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u043c\u0435\u043d\u0430 \u0432\u0441\u0435\u043c \u044f\u0437\u044b\u043a\u0430\u043c. \u0415\u0433\u043e \u0441\u0438\u043b\u0430 \u043f\u0440\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0430\u043c, \u0433\u0434\u0435 \u0446\u0435\u043d\u0430 \u043e\u0448\u0438\u0431\u043a\u0438, \u043b\u0438\u0448\u043d\u0435\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438\u043b\u0438 \u043d\u0435\u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u0441\u043e\u043a\u0430.<\/p>\n<h2>Rust \u0432 2026 \u0433\u043e\u0434\u0443: \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430<\/h2>\n<p>Rust \u0443\u0436\u0435 \u043d\u0435 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u044f\u0437\u044b\u043a, \u043d\u043e \u0438 \u043d\u0435 \u043c\u0430\u0441\u0441\u043e\u0432\u044b\u0439 \u044f\u0437\u044b\u043a \u0443\u0440\u043e\u0432\u043d\u044f JavaScript, Python \u0438\u043b\u0438 Java.<\/p>\n<p>\u041f\u043e Stack Overflow Developer Survey 2025 Rust \u0441\u043d\u043e\u0432\u0430 \u0441\u0442\u0430\u043b \u0441\u0430\u043c\u044b\u043c admired programming language \u0441 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u043c \u043e\u043a\u043e\u043b\u043e 72%, \u043d\u043e \u0434\u043e\u043b\u044f worked-with \u0441\u0440\u0435\u0434\u0438 \u0432\u0441\u0435\u0445 \u0440\u0435\u0441\u043f\u043e\u043d\u0434\u0435\u043d\u0442\u043e\u0432 \u2014 14.8%. \u0422\u043e \u0435\u0441\u0442\u044c Rust \u043e\u0447\u0435\u043d\u044c \u043b\u044e\u0431\u044f\u0442 \u0442\u0435, \u043a\u0442\u043e \u0441 \u043d\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043d\u043e \u043e\u043d \u043f\u043e\u043a\u0430 \u043d\u0435 \u0441\u0442\u0430\u043b \u043c\u0430\u0441\u0441\u043e\u0432\u044b\u043c \u044f\u0437\u044b\u043a\u043e\u043c \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u043e\u0434\u0440\u044f\u0434. <\/p>\n<p>TIOBE Index \u0437\u0430 \u0430\u043f\u0440\u0435\u043b\u044c 2026 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 Rust \u0432 top 20, \u043d\u043e \u043e\u0442\u043c\u0435\u0447\u0430\u0435\u0442 \u0437\u0430\u043c\u0435\u0434\u043b\u0435\u043d\u0438\u0435 \u0440\u043e\u0441\u0442\u0430: \u043f\u043e\u0441\u043b\u0435 \u043f\u0438\u043a\u0430 \u043d\u0430 #13 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0433\u043e\u0434\u0430 Rust \u043e\u043f\u0443\u0441\u0442\u0438\u043b\u0441\u044f \u043a #16. \u0421\u0430\u043c TIOBE \u043f\u043e\u0434\u0447\u0451\u0440\u043a\u0438\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u044c, \u0430 \u043d\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u044f\u0437\u044b\u043a\u0430. <\/p>\n<p>PYPL \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 Rust \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432 \u0440\u0430\u0439\u043e\u043d\u0435 top 10 \u043f\u043e tutorial\/search interest: \u0438\u043d\u0442\u0435\u0440\u0435\u0441 \u043a \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f, \u0445\u043e\u0442\u044f Rust \u043d\u0435 \u043e\u0431\u0433\u043e\u043d\u044f\u0435\u0442 \u043c\u0430\u0441\u0441\u043e\u0432\u044b\u0435 \u044f\u0437\u044b\u043a\u0438. <\/p>\n<p>State of Rust Survey 2025, \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0432 \u043c\u0430\u0440\u0442\u0435 2026 \u0433\u043e\u0434\u0430, \u0441\u043e\u0431\u0440\u0430\u043b 7156 \u043e\u0442\u0432\u0435\u0442\u043e\u0432 \u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0437\u0440\u0435\u043b\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e, \u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u0442 \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b: \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u044f\u0437\u044b\u043a\u0430, \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u0432\u043e\u043a\u0440\u0443\u0433 compiler performance \u0438 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u044b. <\/p>\n<p>\u0418\u0442\u043e\u0433 \u043f\u0440\u043e\u0441\u0442\u043e\u0439: Rust \u2014 \u043d\u0435 \u0445\u0430\u0439\u043f \u043d\u0430 \u043e\u0434\u0438\u043d \u0441\u0435\u0437\u043e\u043d. \u041d\u043e \u0435\u0433\u043e \u0440\u043e\u043b\u044c \u043d\u0435 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0432\u0441\u0435 \u044f\u0437\u044b\u043a\u0438, \u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043d\u044f\u0442\u044c \u0441\u0438\u043b\u044c\u043d\u044b\u0435 \u043d\u0438\u0448\u0438: infrastructure, backend, systems, security, embedded, WebAssembly \u0438 performance-critical \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b.<\/p>\n<h2>\u041a\u0430\u043a \u0438\u0437\u0443\u0447\u0430\u0442\u044c Rust<\/h2>\n<p>\u041b\u0443\u0447\u0448\u0435 \u043d\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u0441 async, unsafe \u0438 \u043c\u0430\u043a\u0440\u043e\u0441\u043e\u0432. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c \u0431\u0430\u0437\u0443.<\/p>\n<h4>\u0421 \u0447\u0435\u0433\u043e \u043d\u0430\u0447\u0430\u0442\u044c:<\/h4>\n<ul>\n<li>\n<p>\u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 (\u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435, \u0446\u0438\u043a\u043b\u044b, \u0444\u0443\u043d\u043a\u0446\u0438\u0438);<\/p>\n<\/li>\n<li>\n<p><code>struct<\/code>,\u00a0<code>enum<\/code>,\u00a0<code>match<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u043c\u043e\u0434\u0443\u043b\u0438;<\/p>\n<\/li>\n<li>\n<p><code>Option<\/code>\u00a0\u0438\u00a0<code>Result<\/code>;<\/p>\n<\/li>\n<li>\n<p>ownership, borrowing, lifetimes.<\/p>\n<\/li>\n<\/ul>\n<h4>\u041b\u0443\u0447\u0448\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b:<\/h4>\n<ul>\n<li>\n<p><strong>\u00abThe Rust Programming Language\u00bb<\/strong>\u00a0(\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u043a\u043d\u0438\u0433\u0430, \u00abThe Book\u00bb) \u2014 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e \u043e\u043d\u043b\u0430\u0439\u043d, \u0435\u0441\u0442\u044c \u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u043f\u0435\u0440\u0435\u0432\u043e\u0434. \u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430 \u043a \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044e.<\/p>\n<\/li>\n<li>\n<p><strong>Rust by Example<\/strong>\u00a0\u2014 \u0443\u0447\u0438\u043c\u0441\u044f \u043d\u0430 \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 (\u0442\u043e\u0436\u0435 \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043d\u0430 \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u0438\u0439).<\/p>\n<\/li>\n<li>\n<p><strong>Rustlings<\/strong>\u00a0\u2014 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0435 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u044f \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043a\u0440\u0435\u043f\u0438\u0442\u044c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b.<\/p>\n<\/li>\n<li>\n<p><strong>The Cargo Book<\/strong>\u00a0\u2014 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e Cargo.<\/p>\n<\/li>\n<li>\n<p><strong>Rustonomicon<\/strong>\u00a0\u2014 \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0445\u043e\u0447\u0435\u0442 \u0433\u043b\u0443\u0431\u043e\u043a\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432\u00a0<code>unsafe<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>Tokio Tutorial<\/strong>\u00a0\u2014 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435.<\/p>\n<\/li>\n<li>\n<p><strong>\u00abZero To Production In Rust\u00bb<\/strong>\u00a0\u2014 \u0434\u043b\u044f backend-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p><strong>\u00abCommand\u2011Line Rust\u00bb<\/strong>\u00a0\u2014 \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0445\u043e\u0447\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c CLI-\u0443\u0442\u0438\u043b\u0438\u0442\u044b.<\/p>\n<\/li>\n<li>\n<p><strong>\u00abProgramming Rust\u00bb<\/strong>\u00a0(\u041e\u02bcReilly) \u2014 \u0431\u043e\u043b\u0435\u0435 \u0433\u043b\u0443\u0431\u043e\u043a\u0430\u044f \u043a\u043d\u0438\u0433\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>\u00abRust for Rustaceans\u00bb<\/strong>\u00a0\u2014 \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0443\u0436\u0435 \u0437\u043d\u0430\u0435\u0442 \u043e\u0441\u043d\u043e\u0432\u044b.<\/p>\n<\/li>\n<\/ul>\n<p>Rust \u043b\u0443\u0447\u0448\u0435 \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0443. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 CLI-\u043f\u0440\u043e\u0435\u043a\u0442\u044b, \u043f\u043e\u0442\u043e\u043c backend, WASM, embedded \u0438\u043b\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u2014 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430.<\/p>\n<h4>\u0425\u043e\u0440\u043e\u0448\u0438\u0435 \u043f\u0435\u0440\u0432\u044b\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u044b:\u00a0<\/h4>\n<ol>\n<li>\n<p>CLI todo\u2011list.<\/p>\n<\/li>\n<li>\n<p>Mini grep (\u043f\u043e\u0438\u0441\u043a \u0441\u0442\u0440\u043e\u043a \u0432 \u0444\u0430\u0439\u043b\u0435).<\/p>\n<\/li>\n<li>\n<p>\u041f\u0430\u0440\u0441\u0435\u0440 \u043b\u043e\u0433\u043e\u0432 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440\u0430) \u0441 \u0430\u0433\u0440\u0435\u0433\u0430\u0446\u0438\u0435\u0439 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438.<\/p>\n<\/li>\n<li>\n<p>JSON\/CSV-\u043f\u0430\u0440\u0441\u0435\u0440.<\/p>\n<\/li>\n<li>\n<p>HTTP API \u043d\u0430 Axum (CRUD \u043f\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c).<\/p>\n<\/li>\n<li>\n<p>Telegram\/Discord \u0431\u043e\u0442.<\/p>\n<\/li>\n<li>\n<p>\u041c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u044b\u0439 \u043f\u0430\u0440\u0441\u0435\u0440 \u043b\u043e\u0433\u043e\u0432 (\u043a\u0430\u0436\u0434\u044b\u0439 \u0444\u0430\u0439\u043b \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0442\u043e\u043a\u0435, \u0441\u0431\u043e\u0440 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u0447\u0435\u0440\u0435\u0437\u00a0<code>mpsc<\/code>).<\/p>\n<\/li>\n<li>\n<p>WebAssembly-\u043c\u043e\u0434\u0443\u043b\u044c, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 \u0438\u0437 JavaScript.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u043e\u043a\u0441\u0438-\u0441\u0435\u0440\u0432\u0435\u0440 (HTTP \u0438\u043b\u0438 TCP).<\/p>\n<\/li>\n<li>\n<p>\u041c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 embedded-\u043f\u0440\u043e\u0435\u043a\u0442 (\u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441 \u043a \u0436\u0435\u043b\u0435\u0437\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u0438\u0433\u0430\u043d\u0438\u0435 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043e\u043c \u043d\u0430 STM32 \u0438\u043b\u0438 Raspberry Pi Pico).<\/p>\n<\/li>\n<\/ol>\n<h2>\u0421\u0442\u043e\u0438\u0442 \u043b\u0438 \u0443\u0447\u0438\u0442\u044c Rust<\/h2>\n<h4>\u0414\u0430, \u0435\u0441\u043b\u0438:<\/h4>\n<ul>\n<li>\n<p>\u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435\u00a0<strong>\u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/strong>\u00a0\u043d\u0430 \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435: \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043f\u0430\u043c\u044f\u0442\u044c, \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438, \u0441\u0442\u0435\u043a, \u043a\u0443\u0447\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u0435 \u0441\u00a0<strong>\u0432\u044b\u0441\u043e\u043a\u043e\u043d\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u043c \u0431\u044d\u043a\u0435\u043d\u0434\u043e\u043c<\/strong>, \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c\u0438, \u043d\u0443\u0436\u0434\u0430\u0435\u0442\u0435\u0441\u044c \u0432 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0412\u0430\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u00a0<strong>\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c, \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430, \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d, embedded, WebAssembly<\/strong>.<\/p>\n<\/li>\n<li>\n<p>\u0425\u043e\u0442\u0438\u0442\u0435\u00a0<strong>\u043f\u0440\u043e\u043a\u0430\u0447\u0430\u0442\u044c \u043c\u044b\u0448\u043b\u0435\u043d\u0438\u0435<\/strong>\u00a0\u043e \u043f\u0430\u043c\u044f\u0442\u0438, \u0442\u0438\u043f\u0430\u0445, \u0432\u043b\u0430\u0434\u0435\u043d\u0438\u0438 \u0438 \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438 \u2014 \u044d\u0442\u0438 \u043d\u0430\u0432\u044b\u043a\u0438 \u043f\u0440\u0438\u0433\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043b\u044e\u0431\u043e\u043c \u044f\u0437\u044b\u043a\u0435.<\/p>\n<\/li>\n<li>\n<p>\u0412\u044b \u0433\u043e\u0442\u043e\u0432\u044b \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u0434\u0435\u043b\u044c \u043d\u0430 \u043f\u0440\u0435\u043e\u0434\u043e\u043b\u0435\u043d\u0438\u0435 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438.<\/p>\n<\/li>\n<\/ul>\n<h4>\u041d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441, \u0435\u0441\u043b\u0438:<\/h4>\n<ul>\n<li>\n<p>\u0412\u044b \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0435\u0441\u044c\u00a0<strong>\u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u043e\u043c<\/strong>\u00a0(React\/Vue\/Svelte) \u0438 \u043d\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c WASM \u0438\u043b\u0438 b\u044d\u043a\u0435\u043d\u0434.<\/p>\n<\/li>\n<li>\n<p>\u0412\u0430\u0448 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0441\u0442\u0435\u043a (Java enterprise, .NET, Go) \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u0438 \u0443 \u0432\u0430\u0441 \u043d\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432\u043d\u0435\u0434\u0440\u044f\u0442\u044c \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u043d\u0435 \u0433\u043e\u0442\u043e\u0432\u0430 \u043a \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0443 \u043d\u0430 Rust.<\/p>\n<\/li>\n<\/ul>\n<p>Rust \u043d\u0435 \u0437\u0430\u043c\u0435\u043d\u0438\u0442 JavaScript \u0432\u043e frontend. \u041d\u0435 \u0437\u0430\u043c\u0435\u043d\u0438\u0442 Python \u0432 data science. \u041d\u0435 \u0437\u0430\u043c\u0435\u043d\u0438\u0442 Java \u0432\u043e \u0432\u0441\u0435\u043c enterprise. \u041d\u0435 \u0437\u0430\u043c\u0435\u043d\u0438\u0442 Go \u0432\u043e \u0432\u0441\u0435\u0445 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u0430\u0445. \u0418 \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u043d.<\/p>\n<p>\u0415\u0433\u043e \u0441\u0438\u043b\u0430 \u0432 \u0434\u0440\u0443\u0433\u043e\u043c: Rust \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u0437\u0430\u0431\u0438\u0440\u0430\u0435\u0442 \u0442\u0435 \u043e\u0431\u043b\u0430\u0441\u0442\u0438, \u0433\u0434\u0435 \u0440\u0430\u043d\u044c\u0448\u0435 \u043f\u043e\u0447\u0442\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u043b\u0438 C \u0438\u043b\u0438 C++, \u043d\u043e \u0433\u0434\u0435 \u0442\u0435\u043f\u0435\u0440\u044c \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438.<\/p>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>Rust \u043d\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0432\u0441\u0435 \u044f\u0437\u044b\u043a\u0438. \u041e\u043d \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043a\u0440\u044b\u0442\u044c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0443\u044e \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443: \u0434\u0430\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430, \u043d\u043e \u0443\u0431\u0440\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043e\u0448\u0438\u0431\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0435\u0441\u044f\u0442\u0438\u043b\u0435\u0442\u0438\u044f\u043c\u0438 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043b\u0438 \u043a \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u043c \u0438 \u043f\u0430\u0434\u0435\u043d\u0438\u044f\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c.<\/p>\n<p>\u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 Rust \u0432\u044b\u0431\u0438\u0440\u0430\u044e\u0442 \u043d\u0435 \u0434\u043b\u044f \u0432\u0441\u0435\u0433\u043e \u043f\u043e\u0434\u0440\u044f\u0434, \u0430 \u0434\u043b\u044f \u0442\u0435\u0445 \u0447\u0430\u0441\u0442\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c, \u0433\u0434\u0435 \u0446\u0435\u043d\u0430 \u043e\u0448\u0438\u0431\u043a\u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432\u044b\u0441\u043e\u043a\u0430: \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c, \u043f\u0430\u043c\u044f\u0442\u044c, \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c, \u0441\u0435\u0442\u044c, \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u043a\u043e\u0434.<\/p>\n<p>XChat \u2014 \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u043f\u043e\u0432\u043e\u0434 \u0441\u043d\u043e\u0432\u0430 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e Rust. \u041d\u043e \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434 \u043d\u0435 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u201c\u0440\u0430\u0437 \u041c\u0430\u0441\u043a \u0432\u044b\u0431\u0440\u0430\u043b Rust, \u0437\u043d\u0430\u0447\u0438\u0442 \u0432\u0441\u0435\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u0440\u043e\u0447\u043d\u043e \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u044b\u201d. \u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434 \u0432 \u0434\u0440\u0443\u0433\u043e\u043c: \u0435\u0441\u043b\u0438 \u043d\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u043e\u0439, \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0439, \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0439 \u043f\u043e \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u0433\u043e\u0442\u043e\u0432\u043e\u0439 \u043a \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0435, Rust \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u0441\u0438\u043b\u044c\u043d\u044b\u043c \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u043e\u043c.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0431\u044b\u0441\u0442\u0440, \u0441\u0442\u0440\u043e\u0433 \u0438 \u043d\u0430\u0434\u0435\u0436\u0435\u043d, Rust \u0442\u043e\u0447\u043d\u043e \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c. \u041d\u043e \u043a\u043e\u0444\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u043c\u043d\u043e\u0433\u043e.<\/p>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1032714\/\">https:\/\/habr.com\/ru\/articles\/1032714\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u2014 \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043a Rust \u0438\u043b\u0438 \u0441\u043b\u044b\u0448\u0430\u043b \u043e \u043d\u0435\u043c \u043b\u0438\u0448\u044c \u043e\u0431\u0440\u044b\u0432\u043a\u0438 \u0432\u043e\u0441\u0442\u043e\u0440\u0436\u0435\u043d\u043d\u044b\u0445 \u0438\u043b\u0438 \u043d\u0435\u0432\u043e\u0441\u0442\u043e\u0440\u0436\u0435\u043d\u043d\u044b\u0445 \u043e\u0442\u0437\u044b\u0432\u043e\u0432. \u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0435, \u0437\u0430\u0447\u0435\u043c \u043c\u0438\u0440\u0443 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u043b\u0441\u044f \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u044f\u0437\u044b\u043a, \u043a\u0430\u043a\u0438\u0435 \u00ab\u0431\u043e\u043b\u0438\u00bb C++ \u043e\u043d \u043b\u0435\u0447\u0438\u0442 \u0438 \u0433\u0434\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0435\u0433\u043e\u0434\u043d\u044f, \u2014 \u0437\u0434\u0435\u0441\u044c \u0432\u044b \u043d\u0430\u0439\u0434\u0435\u0442\u0435 \u043e\u0442\u0432\u0435\u0442\u044b \u043d\u0430 \u044d\u0442\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u044b. \u041c\u044b \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u043b\u0438\u0441\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e, \u0447\u0442\u043e\u0431\u044b \u0443 \u0432\u0430\u0441 \u0441\u043b\u043e\u0436\u0438\u043b\u0430\u0441\u044c \u043f\u043e\u043b\u043d\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430: \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u044f\u0437\u044b\u043a, \u0437\u0430\u0447\u0435\u043c \u0435\u0433\u043e \u0443\u0447\u0438\u0442\u044c \u0438 \u0441 \u0447\u0435\u0433\u043e \u043d\u0430\u0447\u0430\u0442\u044c \u043e\u0441\u0432\u043e\u0435\u043d\u0438\u0435. \u0421\u0440\u0430\u0437\u0443 \u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c\u0441\u044f: \u0435\u0441\u043b\u0438 \u00abThe Book\u00bb \u0434\u0430\u0432\u043d\u043e \u0441\u0442\u0430\u043b\u0430 \u0432\u0430\u0448\u0435\u0439 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043d\u043e\u0439 \u043a\u043d\u0438\u0433\u043e\u0439, \u0432\u044b \u0443\u0436\u0435 \u0441\u043e\u0431\u0430\u043a\u0443 \u0441\u044a\u0435\u043b\u0438 \u043d\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043f\u0430\u043c\u044f\u0442\u044c\u044e \u0438 \u0437\u043d\u0430\u0435\u0442\u0435 \u0432\u0441\u0435 \u043e \u0432\u043b\u0430\u0434\u0435\u043d\u0438\u0438 \u0438 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0438, \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u0432\u0440\u044f\u0434 \u043b\u0438 \u0432\u0430\u0441 \u0443\u0434\u0438\u0432\u0438\u0442. \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u043c \u0436\u0435 \u2014 \u0434\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c.\u0412 \u0430\u043f\u0440\u0435\u043b\u0435 2026 \u0433\u043e\u0434\u0430 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e \u0441\u0440\u0430\u0437\u0443 \u0434\u0432\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u044f, \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0432\u0448\u0438\u0445 \u0432\u043d\u043e\u0432\u044c \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e Rust. 16 \u0430\u043f\u0440\u0435\u043b\u044f \u0432\u044b\u0448\u0435\u043b \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u043b\u0438\u0437 \u2014 Rust 1.95.0. \u0410 \u0432\u0441\u043a\u043e\u0440\u0435 \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0418\u043b\u043e\u043d \u041c\u0430\u0441\u043a \u0437\u0430\u044f\u0432\u0438\u043b, \u0447\u0442\u043e \u043d\u043e\u0432\u044b\u0439 \u043c\u0435\u0441\u0441\u0435\u043d\u0434\u0436\u0435\u0440 XChat \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d \u043d\u0430 Rust \u0438 \u00abwhole new architecture\u00bb. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u043e\u043d\u044f\u0442\u044c, \u043f\u043e\u0447\u0435\u043c\u0443 \u0434\u043b\u044f \u043d\u043e\u0432\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c, \u0433\u0434\u0435 \u0432\u0430\u0436\u043d\u044b \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c, \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0438 \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u044c, \u0432\u0441\u0435 \u0447\u0430\u0449\u0435 \u0432\u044b\u0431\u0438\u0440\u0430\u044e\u0442 Rust?  \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Rust, \u0435\u0441\u043b\u0438 \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u0432 \u043e\u0434\u043d\u043e\u043c \u0430\u0431\u0437\u0430\u0446\u0435Rust \u2014 \u044d\u0442\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0438 \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0433\u043e \u0441\u043e\u0444\u0442\u0430. \u041e\u043d \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0439 \u043a\u043e\u0434, \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b \u0432\u0440\u043e\u0434\u0435 JVM \u0438 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u0431\u043e\u0440\u0449\u0438\u043a \u043c\u0443\u0441\u043e\u0440\u0430 \u043a\u0430\u043a Java, Go, JavaScript \u0438\u043b\u0438 Python.\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c Rust \u2014 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u0438 \u0431\u0435\u0437 garbage collector. \u0422\u043e \u0435\u0441\u0442\u044c \u044f\u0437\u044b\u043a \u0441\u0442\u0430\u0440\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c use-after-free, dangling pointer, double free, data race \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u043e\u0441\u0442\u0438 \u0435\u0449\u0435 \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438.\u0415\u0441\u043b\u0438 \u0441\u043e\u0432\u0441\u0435\u043c \u043a\u043e\u0440\u043e\u0442\u043a\u043e:Rust \u2014 \u044d\u0442\u043e \u044f\u0437\u044b\u043a \u0434\u043b\u044f \u0441\u043b\u0443\u0447\u0430\u0435\u0432, \u043a\u043e\u0433\u0434\u0430 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 C++, \u043d\u043e \u043d\u0435 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0436\u0438\u0442\u044c \u0441 \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u043c\u0438 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438 C++.\u041f\u043e\u0447\u0435\u043c\u0443 Rust \u0432\u043e\u043e\u0431\u0449\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044fRust \u0431\u044b\u043b \u0441\u043e\u0437\u0434\u0430\u043d\u00a0\u0413\u0440\u0435\u0439\u0434\u043e\u043d\u043e\u043c \u0425\u043e\u0430\u0440\u043e\u043c\u00a0\u0432\u00a0Mozilla\u00a0\u0432 \u043f\u0435\u0440\u0438\u043e\u0434 \u0441 2006 \u043f\u043e 2010 \u0433\u043e\u0434. \u0425\u043e\u0430\u0440 \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043d\u0430\u0434 \u044f\u0437\u044b\u043a\u043e\u043c \u0432 \u043b\u0438\u0447\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u0430 \u0437\u0430\u0442\u0435\u043c Mozilla \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u043b\u0430 \u043f\u0440\u043e\u0435\u043a\u0442 \u043a\u0430\u043a \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u043d\u0443\u044e \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043d\u044b\u0445 \u0434\u0432\u0438\u0436\u043a\u043e\u0432.\u00a0\u0421\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f Rust 1.0 \u0432\u044b\u0448\u043b\u0430 15 \u043c\u0430\u044f 2015 \u0433\u043e\u0434\u0430.  \u0423\u0436\u0435 \u0442\u043e\u0433\u0434\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043b\u0430 \u0437\u0430\u0434\u0430\u0447\u0443 \u044f\u0437\u044b\u043a\u0430 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0447\u0435\u0442\u043a\u043e: \u043f\u043e\u043c\u043e\u0447\u044c \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0435 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0441\u043e\u0447\u0435\u0442\u0430\u044f \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0441 \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u043c\u0438 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u044f\u043c\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u2014 \u0431\u0435\u0437 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e garbage collector \u0438 runtime.   \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c, \u0437\u0430\u0447\u0435\u043c Rust \u0431\u044b\u043b \u043d\u0443\u0436\u0435\u043d, \u043d\u0443\u0436\u043d\u043e \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041e\u0433\u0440\u043e\u043c\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0430\u0436\u043d\u043e\u0433\u043e \u041f\u041e \u0434\u0435\u0441\u044f\u0442\u0438\u043b\u0435\u0442\u0438\u044f\u043c\u0438 \u043f\u0438\u0441\u0430\u043b\u0430\u0441\u044c \u043d\u0430 C \u0438 C++: \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u044b, \u044f\u0434\u0440\u0430 \u041e\u0421, \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u044b, \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b. \u042d\u0442\u0438 \u044f\u0437\u044b\u043a\u0438 \u043d\u0435\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u043c\u043e\u0449\u043d\u044b\u0435, \u043d\u043e \u043e\u043d\u0438 \u0434\u0430\u044e\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u0441\u0432\u043e\u0431\u043e\u0434\u044b. \u0410 \u0441\u0432\u043e\u0431\u043e\u0434\u0430 \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e \u0447\u0430\u0441\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043c\u043e\u0436\u0435\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u043e\u043f\u0430\u0441\u043d\u043e\u0435.\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a \u043f\u0430\u043c\u044f\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443\u0436\u0435 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0430. \u0418\u043b\u0438 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u043c\u0438 \u0431\u0443\u0444\u0435\u0440\u0430. \u0418\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0434\u0432\u0443\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0431\u0435\u0437 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438. \u0412 \u043b\u0443\u0447\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0443\u043f\u0430\u0434\u0435\u0442. \u0412 \u0445\u0443\u0434\u0448\u0435\u043c \u2014 \u0441\u0442\u0430\u043d\u0435\u0442 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c\u044e.Chromium Project \u043f\u0438\u0441\u0430\u043b, \u0447\u0442\u043e \u043e\u043a\u043e\u043b\u043e 70% high severity security bugs \u0432 Chromium \u0431\u044b\u043b\u0438 memory unsafety problems, \u0442\u043e \u0435\u0441\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 C\/C++ pointers. \u041f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u0438\u0437 \u043d\u0438\u0445 \u2014 use-after-free. \u042d\u0442\u043e \u043d\u0435 \u201c70% \u0432\u0441\u0435\u0445 \u0431\u0430\u0433\u043e\u0432 Chrome\u201d, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u0435 security bugs, \u043d\u043e \u0446\u0438\u0444\u0440\u0430 \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f.Rust \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u043a\u0430\u043a \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u0437\u0430\u043a\u0440\u044b\u0442\u044c \u044d\u0442\u0443 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u0443\u044e \u0434\u044b\u0440\u0443:  \u0434\u0430\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0443\u0440\u043e\u0432\u043d\u044f C\/C++;  \u0443\u0431\u0440\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043e\u0448\u0438\u0431\u043e\u043a \u043f\u0430\u043c\u044f\u0442\u0438;  \u043d\u0435 \u0432\u0432\u043e\u0434\u0438\u0442\u044c GC;\u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 toolchain (\u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f);\u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u0433\u0438\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0435\u0440\u0435\u0442 \u043d\u0430 \u0441\u0435\u0431\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0432\u043c\u0435\u0441\u0442\u043e \u043d\u0430\u0434\u0435\u0436\u0434\u044b \u043d\u0430 \u0434\u0438\u0441\u0446\u0438\u043f\u043b\u0438\u043d\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430.\u041a\u043e\u0440\u043e\u0442\u043a\u0430\u044f \u0444\u043e\u0440\u043c\u0443\u043b\u0430:Rust \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u043d\u0435 \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043c\u0438\u0440\u0443 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u043b\u043e \u0435\u0449\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041e\u043d \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0443 \u0441\u0442\u0430\u0440\u044b\u0445 \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u0432 \u0431\u044b\u043b \u0431\u043e\u043b\u0435\u0437\u043d\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u0440\u043e\u043c\u0438\u0441\u0441: \u043b\u0438\u0431\u043e \u0431\u044b\u0441\u0442\u0440\u043e, \u043d\u043e \u043e\u043f\u0430\u0441\u043d\u043e; \u043b\u0438\u0431\u043e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0435\u0435, \u043d\u043e \u0441 runtime, GC \u0438 \u043c\u0435\u043d\u044c\u0448\u0438\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0435\u043c. \u041a\u0430\u043a\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 Rust \u043f\u044b\u0442\u0430\u043b\u0441\u044f \u0440\u0435\u0448\u0438\u0442\u044c\u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c Rust, \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u044f\u0437\u044b\u043a\u043e\u0432.C\/C++: \u0431\u044b\u0441\u0442\u0440\u043e, \u043d\u043e \u043e\u043f\u0430\u0441\u043d\u043e  C \u0438 C++ \u0434\u0430\u044e\u0442 \u043f\u043e\u0447\u0442\u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u043d\u0430\u0434 \u043f\u0430\u043c\u044f\u0442\u044c\u044e. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0441\u0430\u043c \u0440\u0435\u0448\u0430\u0435\u0442, \u0433\u0434\u0435 \u0438 \u043a\u043e\u0433\u0434\u0430 \u0432\u044b\u0434\u0435\u043b\u044f\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0442\u044c, \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0431\u0443\u0444\u0435\u0440\u0430\u043c\u0438.\u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 C\/C++ \u0431\u044b\u0441\u0442\u0440\u044b\u043c\u0438 \u0438 \u0433\u0438\u0431\u043a\u0438\u043c\u0438. \u041d\u043e \u0446\u0435\u043d\u0430 \u2014 \u0432\u044b\u0441\u043e\u043a\u0430\u044f \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u043e\u0448\u0438\u0431\u043e\u043a.\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b:Memory safety (\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e) \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043b\u0435\u0436\u0438\u0442 \u043d\u0430 \u043f\u043b\u0435\u0447\u0430\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430.Buffer overflow \u0438 buffer over-read \u2014 \u0437\u0430\u043f\u0438\u0441\u044c \u0438\u043b\u0438 \u0447\u0442\u0435\u043d\u0438\u0435 \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u043c\u0438 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0431\u0443\u0444\u0435\u0440\u0430.Use-after-free \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f \u043f\u043e\u0441\u043b\u0435 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438.Double free \u2014 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0435 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0439 \u0438 \u0442\u043e\u0439 \u0436\u0435 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043f\u0430\u043c\u044f\u0442\u0438.Dangling pointer \u2014 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442. \u041f\u0440\u0438\u043c\u0435\u0440 \u043d\u0430 C:  #include &lt;stdio.h&gt;#include &lt;string.h&gt;int main() {    char name[8];    strcpy(name, &#171;very very long name&#187;);    printf(&#171;%s\\n&#187;, name);    return 0;}\u0417\u0434\u0435\u0441\u044c \u043c\u0430\u0441\u0441\u0438\u0432 name \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d \u043d\u0430 8 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432, \u043d\u043e \u043c\u044b \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0442\u0443\u0434\u0430 \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u0438\u043b\u044c\u043d\u043e \u0434\u043b\u0438\u043d\u043d\u0435\u0435. \u0412 C \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u043f\u043e\u0432\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044e \u043f\u0430\u043c\u044f\u0442\u0438. \u0418\u043d\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u043f\u0430\u0434\u0435\u0442. \u0418\u043d\u043e\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u0435\u0441\u0442\u0438 \u0441\u0435\u0431\u044f \u0441\u0442\u0440\u0430\u043d\u043d\u043e. \u0418\u043d\u043e\u0433\u0434\u0430 \u0442\u0430\u043a\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u0441\u0442\u0430\u043d\u0435\u0442 \u0447\u0430\u0441\u0442\u044c\u044e exploit chain.Rust \u043d\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u0442\u0430\u043a\u043e\u0439 \u0441\u0442\u0438\u043b\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u0432 safe-\u043a\u043e\u0434\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u043c, \u0434\u043e\u0441\u0442\u0443\u043f \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f:fn main() {    let items = vec![1, 2, 3];    \/\/ println!(&#171;{}&#187;, items[10]); \/\/ panic: \u0438\u043d\u0434\u0435\u043a\u0441 \u0432\u043d\u0435 \u0433\u0440\u0430\u043d\u0438\u0446    println!(&#171;{:?}&#187;, items.get(10)); \/\/ None}items[10] \u043f\u0440\u0438\u0432\u0435\u0434t\u0442 \u043a panic, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0438\u043d\u0434\u0435\u043a\u0441 \u0432\u043d\u0435 \u0433\u0440\u0430\u043d\u0438\u0446. \u0410 items.get(10) \u0432\u0435\u0440\u043d\u0435\u0442 None, \u0442\u043e \u0435\u0441\u0442\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e \u0441\u043a\u0430\u0436\u0435\u0442: \u201c\u0442\u0430\u043a\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043d\u0435\u0442\u201d.\u0425\u043e\u0440\u043e\u0448\u0438\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u2014 Heartbleed \u0432 OpenSSL, 2014 \u0433\u043e\u0434. \u0412 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 heartbeat \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0432 OpenSSL \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0430 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0433\u0440\u0430\u043d\u0438\u0446. \u041a\u043b\u0438\u0435\u043d\u0442 \u043c\u043e\u0433 \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u00ab\u043e\u0442\u043f\u0440\u0430\u0432\u044c \u043c\u043d\u0435 500 \u0431\u0430\u0439\u0442\u00bb, \u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e 1 \u0431\u0430\u0439\u0442 \u0434\u0430\u043d\u043d\u044b\u0445. \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043d\u0430 C \u0447\u0435\u0441\u0442\u043d\u043e \u0447\u0438\u0442\u0430\u043b\u0430 500 \u0431\u0430\u0439\u0442 \u0438\u0437 \u043f\u0430\u043c\u044f\u0442\u0438 \u2014 \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0447\u0443\u0436\u0438\u0435 \u043a\u043b\u044e\u0447\u0438 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043f\u0430\u0440\u043e\u043b\u0438, \u0441\u0435\u0441\u0441\u0438\u043e\u043d\u043d\u044b\u0435 cookie. \u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438 \u044d\u0442\u043e\u00a0buffer over-read\u00a0(\u0447\u0442\u0435\u043d\u0438\u0435 \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u044b), \u043d\u043e \u043a\u043e\u0440\u0435\u043d\u044c \u0442\u043e\u0442 \u0436\u0435: \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0433\u0440\u0430\u043d\u0438\u0446.  Rust \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0439 \u043b\u044e\u0431\u0443\u044e \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c, \u043d\u043e \u043e\u043d \u0440\u0435\u0437\u043a\u043e \u0441\u043d\u0438\u0436\u0430\u0435\u0442 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0446\u0435\u043b\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 memory-safety \u043e\u0448\u0438\u0431\u043e\u043a \u0432 safe-\u043a\u043e\u0434\u0435.\u0415\u0449\u0435 \u043e\u0434\u0438\u043d \u043f\u0440\u0438\u043c\u0435\u0440 \u2014 dangling pointer. \u0412 C++ \u043c\u043e\u0436\u043d\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u0436\u0435 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d:#include &lt;iostream&gt;int* make_number() {    int value = 42;    return &amp;value; \/\/ \u043e\u043f\u0430\u0441\u043d\u043e: \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u0430\u0434\u0440\u0435\u0441 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439}int main() {    int* p = make_number();    std::cout &lt;&lt; *p &lt;&lt; std::endl; \/\/ \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435}value \u0436\u0438\u0432\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 make_number. \u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u0445\u043e\u0434\u0430 \u0438\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0430\u043c\u044f\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u0430, \u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c p \u0432\u0441\u0435 \u0435\u0449\u0435 \u201c\u043a\u0443\u0434\u0430-\u0442\u043e\u201d \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442.Rust \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 \u0432 safe-\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435 \u043d\u0435 \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442:fn make_number() -&gt; &amp;i32 {    let value = 42;    &amp;value}\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0441\u043a\u0430\u0436\u0435\u0442: \u043d\u0435\u043b\u044c\u0437\u044f \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u0430 \u043f\u0440\u0438 \u0432\u044b\u0445\u043e\u0434\u0435 \u0438\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0438.\u042d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c \u043e\u0434\u043d\u0430 \u0438\u0437 \u0433\u043b\u0430\u0432\u043d\u044b\u0445 \u0438\u0434\u0435\u0439 Rust: \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0443 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438, \u0447\u0435\u043c production-\u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442.Java: \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0435\u0435, \u043d\u043e \u0435\u0441\u0442\u044c JVM \u0438 GC Java \u0440\u0435\u0448\u0438\u043b\u0430 \u043c\u043d\u043e\u0433\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b C\/C++ \u0434\u0440\u0443\u0433\u0438\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043d\u0435 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0430\u0435\u0442 \u043f\u0430\u043c\u044f\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e. \u042d\u0442\u0438\u043c \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f garbage collector \u2014 \u0441\u0431\u043e\u0440\u0449\u0438\u043a \u043c\u0443\u0441\u043e\u0440\u0430.  JVM \u2014 Java Virtual Machine, \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430, \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f Java-\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430.Runtime \u2014  \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0435\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435\u043c.  GC \u2014 garbage collector, \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f.Pause time \u2014 \u043f\u0430\u0443\u0437\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0442\u044c \u0438\u0437-\u0437\u0430 \u0440\u0430\u0431\u043e\u0442\u044b GC. \u0421\u0430\u043c\u044b\u0439 \u0437\u0430\u043c\u0435\u0442\u043d\u044b\u0439 \u0442\u0438\u043f \u0442\u0430\u043a\u0438\u0445 \u043f\u0430\u0443\u0437 \u2014 Stop-the-world (STW): \u043c\u043e\u043c\u0435\u043d\u0442\u044b, \u043a\u043e\u0433\u0434\u0430 JVM \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043f\u0440\u0438\u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0447\u0430\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u0430 \u043c\u0443\u0441\u043e\u0440\u0430.\u0414\u043b\u044f enterprise\/backend Java \u2014 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u0432\u044b\u0431\u043e\u0440. \u041e\u043d\u0430 \u0437\u0440\u0435\u043b\u0430\u044f, \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0430\u044f, \u0441 \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0439 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439. \u041d\u043e \u0434\u043b\u044f \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432, \u044f\u0434\u0440\u0430 \u041e\u0421, embedded, \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 low-latency \u0441\u0438\u0441\u0442\u0435\u043c \u0438 \u043e\u0447\u0435\u043d\u044c \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043a \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 JVM, GC \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 STW-\u043f\u0430\u0443\u0437\u044b \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0441\u0438\u043b\u044c\u043d\u044b\u043c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435\u043c.\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 Java \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c NullPointerException:class Main {    static String findUserName(int id) {        if (id == 1) {            return &#171;Alice&#187;;        }        return null;    }    public static void main(String[] args) {        String name = findUserName(2);        System.out.println(name.length()); \/\/ NullPointerException    }}\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043d\u0435 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e Java \u043f\u043b\u043e\u0445\u0430\u044f. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e null \u2014 \u044d\u0442\u043e \u043e\u0441\u043e\u0431\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u043e\u0436\u0435\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0447\u0442\u0438 \u0433\u0434\u0435 \u0443\u0433\u043e\u0434\u043d\u043e, \u0435\u0441\u043b\u0438 API \u044d\u0442\u043e \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442.\u0412 Rust \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u044b\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u0442\u0438\u043f\u043e\u043c:fn find_user_name(id: u32) -&gt; Option&lt;String&gt; {    if id == 1 {        Some(String::from(&#171;Alice&#187;))    } else {        None    }}fn main() {    match find_user_name(2) {        Some(name) =&gt; println!(&#171;{}&#187;, name.len()),        None =&gt; println!(&#171;user not found&#187;),    }}Option&lt;T&gt; \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442: \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043b\u0438\u0431\u043e \u0435\u0441\u0442\u044c (Some), \u043b\u0438\u0431\u043e \u0435\u0433\u043e \u043d\u0435\u0442 (None). \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043e\u0431\u0430 \u0441\u043b\u0443\u0447\u0430\u044f. \u042d\u0442\u043e \u043d\u0435 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u044f, \u0447\u0442\u043e \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u0448\u0438\u0431\u043e\u043a, \u043d\u043e \u0448\u0430\u043d\u0441 \u0437\u0430\u0431\u044b\u0442\u044c \u043f\u0440\u043e \u201c\u043f\u0443\u0441\u0442\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u201d \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u043d\u0438\u0436\u0435.  Go: \u043f\u0440\u043e\u0449\u0435, \u043d\u043e \u043c\u0435\u043d\u044c\u0448\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f  Go \u2014 \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u0434\u043b\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430. \u041e\u043d \u043f\u0440\u043e\u0449\u0435 Rust, \u0438\u043c\u0435\u0435\u0442 \u0443\u0434\u043e\u0431\u043d\u044b\u0439 garbage collector \u0438 \u043e\u0442\u043b\u0438\u0447\u043d\u0443\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 concurrency \u0447\u0435\u0440\u0435\u0437 \u0433\u043e\u0440\u0443\u0442\u0438\u043d\u044b.\u041e\u0434\u043d\u0430\u043a\u043e Go \u0442\u043e\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 GC, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442, \u0438\u043c\u0435\u0435\u0442 \u043f\u0430\u0443\u0437\u044b \u0438 \u043c\u0435\u043d\u044c\u0448\u0438\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u043d\u0430\u0434 \u043f\u0430\u043c\u044f\u0442\u044c\u044e. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, Go \u043d\u0435 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0435\u0442 data race (\u0433\u043e\u043d\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445) \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438.Data race \u2014 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f, \u043a\u043e\u0433\u0434\u0430 \u0434\u0432\u0430 \u043f\u043e\u0442\u043e\u043a\u0430 \u0438\u043b\u0438 \u0433\u043e\u0440\u0443\u0442\u0438\u043d\u044b \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043e\u0431\u0440\u0430\u0449\u0430\u044e\u0442\u0441\u044f \u043a \u043e\u0434\u043d\u0438\u043c \u0438 \u0442\u0435\u043c \u0436\u0435 \u0434\u0430\u043d\u043d\u044b\u043c, \u0438 \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u0438\u043d \u0438\u0437 \u043d\u0438\u0445 \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442. \u0412 Go \u0435\u0441\u0442\u044c \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 race detector, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 -race, \u043d\u043e \u043e\u043d \u0438\u0449\u0435\u0442 \u0433\u043e\u043d\u043a\u0438, \u043f\u0440\u043e\u044f\u0432\u0438\u0432\u0448\u0438\u0435\u0441\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0442\u0435\u0441\u0442\u043e\u0432 \u0438\u043b\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. Rust \u0436\u0435 \u0441\u0442\u0430\u0440\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u0434\u0430\u0442\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043c\u043d\u043e\u0433\u0438\u0435 \u0442\u0430\u043a\u0438\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u0443\u0436\u0435 \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438. \u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0434\u0435\u0438 \u043d\u0430 Rust:use std::thread;fn main() {    let mut counter = 0;    thread::scope(|s| {        s.spawn(|| {            counter += 1;        });        s.spawn(|| {            counter += 1;        });    });    println!(&#171;{counter}&#187;);}\u0422\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f: \u0434\u0432\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043f\u044b\u0442\u0430\u044e\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a counter.\u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u2014 \u044f\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044e:use std::sync::{Arc, Mutex};use std::thread;fn main() {    let&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-478964","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/478964","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=478964"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/478964\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=478964"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=478964"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=478964"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}