Блог Евгения Морозова

ссылки

До нового года осталось меньше месяца, а я только нашёл эту прекрасную страницу: Learning Rust in 2020.

Я стал осторожно изучать Rust с начала 2020. Особых причин для изучения не было. Хотелось изучить какой-то новый язык программирования, чего уже давно не делал, так как не было времени и сильной необходимости. При этом не люблю языки, работающие на виртуальных машинах (видимо, сказывается нелюбовь, вызванная столкновениями с ранними версиями Java, которые всегда больше обещали, чем делали). Есть исключение: мне нравится Clojure и я делал к нему несколько подходов, но очень глубоко не погрузился. Мне не хочется изучать еще один интерпретируемый язык. Я трушу идти в экзотические и/или пуристские языки (Haskell, Scala).

Rust показался идеальной целью по многим параметрам. Он производительный и мощный — в том смысле, что может работать на голом железе, без интерпретаторов, байт кода, сборки мусора, и так далее. При этом, он высокоуровневый, но без сборки мусора, которая заменена на мощную и сложную систему управления памятью, иногда называемой «сборкой мусора во время компиляции».

После прочтения Rust Book, прежде чем перейти к написанию какого-нибудь хобби-проекта на Rust, хотелось для начала набить руку на простых примерах на сайтах типа LeetCode или CodeWars. Однако первые же попытки решить простейшие задачи на LeetCode стали вызывать серьезные трудности. Я знал, что на Rust сложно реализовывать структуры данных из-за стремления компилятора сделать программы максимально безопасными. Но не предполагал насколько, и насколько сложно решать эти проблемы имея за поясом только Rust Book, которая, всё-таки, не объясняет множество критически важных вещей.

Страница Learning Rust in 2020 немного подняла самооценку, так как на ней поясняется, что, к сожалению, задачи на LeetCode и CodeWars плохо сформулированы на неидиоматичном Rust. Предлагается несколько альтернатив, например, Exercism — сайт, на котором можно решать задачи, составленные профессионалами на идиоматичном Rust. Более того, обещается, что проверять и подсказывать будут настоящие наставники. Зарегистрировался и решил первую тривиальную задачу. Постараюсь информировать о ходе прохождения курса, концепция мне очень нравится. Но прежде надо будет закончить другой начатый курс: Learn Rust by Building Real Applications , который пока нравится тем, что доступно и просто объясняет как некоторые сложные концепции, которые не до конца объяснены в Rust Book, так и многие вещи, которые даже не были затронуты в Rust Book.

#rust #курсы #ссылки

Изучая Rust, не могу не отметить, что находить информацию в современном мире становится всё труднее. Не последнюю роль играет отмирание традиционных средств распространения информации, таких как персональный сайт, персональная страница, блог, и замена их на гораздо менее привлекательные и доступные страницы в facebook и блоги в телеграм. Кстати, блоги на GitHub тоже не люблю: по каким-то непонятным причинам более половины недоступны. То есть видишь где-то ссылку на блог на GitHub, переходишь, а там — 404. Сталкиваюсь с этим настолько часто, что нередко даже не пытаюсь открывать, если увидел домен github.io.

Ну а facebook и телеграм — это просто закрытые от индексирования эфемерные песочницы. Любая информация, попавшая туда, навсегда исчезает за горизонтом событий. Не говоря уж о том, что facebook давно стал инструментом политической пропаганды и жесточайшей цензуры.

Поэтому находя случайно интересный блог, радуюсь как ребёнок. Сегодня поделюсь следующей находкой: Faster than lime.

Есть статьи как для совсем начального уровня, так и довольно сложные объяснения как Rust (и не только Rust) устроен под капотом, а также все градации сложности посередине. Это приятно, ибо нередко блоги по Rust отличаются тем, что после первого вступительного абзаца переходят в такой хардкор, что чувствуешь себя беспомощным ничтожеством. Возможно, по мере продвижения в изучении Rust, моё мнение изменится, но пока что приятно находить такой материал, который и обогащает знаниями, но в то же время всё разжевывает достаточно подробно, чтобы не терять мысль автора на середине.

#rust #ссылки