Команда, що працює над CPython — базовою реалізацією Python, — відкинула ідею зробити Rust необхідною складовою для побудови інтерпретатора. Про зміну курсу пише The Register: замість жорсткої вимоги розробники обрали м'якший варіант і зайнялися опціональним Rust API для внутрішньої розробки самого Python.
Як агресивний план перетворився на компромісний
Про нове рішення розповів Томаш Шедович, менеджер програм Rust, виступаючи на конференції RustConf, яка минулого тижня проходила в Монреалі. За його словами, оновлений підхід дозволяє уникнути більшості претензій, які лунали від спільноти.
Обходить стороною більшість занепокоєнь, які висловлювали люди.
Томаш Шедович, менеджер програм Rust
Команда Rust спільно з ключовими розробниками CPython доклала зусиль, щоб інтеграція двох технологічних середовищ відбувалася без зайвого тертя. Обраний варіант відрізняється від жорсткішого сценарію, схожого на той, що торік викликав опір серед розробників ядра Linux під час дискусій про використання Rust у kernel.
Звідки виникла ідея
Початкова пропозиція під назвою «pre-PEP: Rust for CPython» мала на увазі значно сміливіший сценарій розвитку подій. За задумом, Rust спочатку мав з'явитися для написання опціональних модулів розширення, а згодом перетворитися на обов'язкову залежність, яку можна було би застосовувати в усій кодовій базі CPython.
Автор ідеї, що виступає під псевдонімом Smith, пропонував дозволити розробникам CPython писати опціональні модулі розширення на Rust за власним бажанням, без будь-якого тиску переходити на нову мову.
Навіть засновник Python Гвідо ван Россум висловився на підтримку поетапного впровадження.
Ми всі розуміємо, що повне переписування на Rust не спрацює, але почати з упровадження Rust спершу для менш критичних компонентів, а потім поступово дозволити йому охоплювати більш суттєві частини — це звучить як хороший план.
Гвідо ван Россум
Що на порядку денному
Після обговорень робота не зупинилася: команда продовжила вбудовувати Rust у процес збирання CPython та розробляти Rust API, який дозволить застосовувати crates — бібліотеки Rust — для побудови самого Python.
Новий API планують випустити разом із Python 3.16, реліз якого очікується в жовтні 2027 року. У складі цієї збірки з'явиться Rust-бібліотека стиснення zlib — вона виконуватиме роль тестового crate для перевірки нової архітектури.
Отже, розробники Python вирішили рухатися шляхом поступового й непримусового впровадження Rust, уникаючи різких вимог до всієї спільноти негайно переходити на нову мову для збирання інтерпретатора — саме такий сценарій свого часу спричинив спротив у проєкті ядра Linux.
Нагадаємо, нещодавно один з розробників пропонував перенести системи штучного інтелекту з Python на Java.
Джерело: Highload.tech


