Розробники CPython, еталонної реалізації мови Python, відмовилися від ідеї зробити Rust обов’язковою залежністю для збирання інтерпретатора. Натомість команда зосередиться на менш нав’язливому підході: створенні опціонального Rust API для внутрішньої розробки самого Python. Про це пише The Register.

Від агресивного плану до опціонального підходу
Про зміну курсу повідомив Томаш Шедович, менеджер програм Rust, під час виступу на конференції RustConf, що відбулася минулого тижня в Монреалі. За його словами, новий підхід «обходить стороною більшість занепокоєнь, які висловлювали люди» — команда Rust разом з основними розробниками CPython працювала над тим, щоб зробити інтеграцію двох середовищ максимально плавною.
Переглянутий підхід CPython уникає агресивнішого варіанту впровадження Rust — саме такого, який торік спричинив спротив у спільноті розробників ядра 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.
