Оригинал [статьи][1] написан живущим на вашингтонщине [Иваном Сагалаевым][2], мужем небезызвестной [Алёны C++][3]. **Сама статья.** Работать с чистыми функциями просто: вы передаете аргументы и получаете результат, при этом нет никаких побочных эффектов. С другой стороны, если функция производит побочные эффекты, такие, как изменение собственных аргументов или же глобальных объектов, то найти причины этого трудно. Мы привыкли также, что если видим что-то вроде _player.set\_speed(5)_, то можно быть уверенным, что тут собираются изменить объект _player_ предсказуемым способом (и, возможно, посылают некоторые сигналы куда-нибудь). Система [владения/заимствования языка Rust][4] сложна и она создает совершенно новый класс побочных эффектов. [Читать дальше →][5]
[1]:
http://softwaremaniacs.org/blog/2016/02/12/ownership-borrowing-hard/
[2]:
http://softwaremaniacs.org/about/
[3]:
http://alenacpp.blogspot.ru/
[4]:
https://doc.rust-lang.org/book/ownership.html
[5]:
https://habrahabr.ru/post/278779/#habracut