Python в Rust Преодоление 3 больших препятствий

Преодоление 3 главных препятствий при использовании Python в Rust

Python профессионал становится начинающим Rust-разработчиком: история перехода дата-саентолога

Рисунок 1: Змея и краб. (Краб: Romina BM; Змея: Mohan Moolepetlu; композиция автора).

Все вокруг меня знают, что я являюсь большим фанатом 🐍 Python. Я начал использовать Python около 15 лет назад, когда я устал от Mathworks Matlab. Хотя идея Matlab показалась мне привлекательной, после освоения Python я никогда не оглядывался. Я даже стал своего рода евангелистом Python в своем университете и “распространял слово”.

Владение навыками программирования не делает вас разработчиком программного обеспечения.

В настоящее время я работаю в компании TenneT, крупном операторе систем передачи электроэнергии в Нидерландах и Германии, и мы разрабатываем решение по парсингу и проверке документов с командой из около 10 человек. Разработка такого решения, особенно в команде, оказалась гораздо сложнее, чем я предполагал. Это также заинтересовало меня в правильных парадигмах программной инженерии. Я всегда считал, что мой код не так уж и плох, но, взглянув на работу своих друзей-программистов: ух, столько нужно учиться!

Изучая такие темы, как строгая типизация, принципы SOLID и общие архитектуры программирования, я также заглянул в другие языки и рассмотрел, как они решают проблему. Особенно Rust привлек мое внимание, так как я часто видел пакеты Python, основанные на Rust (например, Polars).

Чтобы получить правильное представление о Rust, я следовал официальному курсу Rustlings, который представляет собой локальный репозиторий Git с 96 небольшими проблемами по кодированию. Это было довольно выполнимо, но Rust очень отличается от Python. Компилятор Rust – очень строгий товарищ, который не принимает “может быть” в качестве ответа. Ниже приведены три основных различия между Rust и Python.

Отказ от ответственности: хотя я довольно хорошо владею Python, мои другие языки немного “заржавели” (шутка намеком на название Rust). Я все еще изучаю Rust и мог неправильно понять некоторые моменты.

Рисунок 2: Мы добрались до финиша (снимок экрана автора).

1. Владение, заимствование и времени жизни

Владение и заимствование, вероятно, являются самыми фундаментальными аспектами языка программирования Rust. Он разработан для обеспечения безопасности памяти без необходимости использования так называемого сборщика мусора. Это уникальная концепция…