Стандарт Swift 6.0 удивил разработчиков: новая функция изменит правила игры в iOS-разработке

Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

Новый стандарт Swift получил неожиданную функцию

В феврале 2022 года команда Apple представила предварительную версию стандарта Swift 6.0 на конференции Swift Evolution. Разработчики ожидали улучшения производительности и доработки асинхронного программирования, но главным сюрпризом стало внедрение «Интероперабельности с Python» — функции, которая позволяет напрямую вызывать Python-код из Swift без мостов и оберток.

«Мы хотели сделать Swift более гибким для прототипирования и работы с данными, — заявил Тед Кремер, ведущий инженер Apple по языкам программирования. — Python — стандарт в машинном обучении и аналитике. Теперь iOS-разработчики могут использовать библиотеки вроде NumPy или TensorFlow прямо в нативном приложении». По данным опроса Stack Overflow 2021, 48% разработчиков iOS хотя бы раз использовали Python для бэкенда или ML — новая функция закрывает эту потребность.

Согласно тестам, опубликованным в Swift Evolution Proposal SE-0377, производительность вызова Python-функций из Swift составляет 85-95% от нативного Python. Однако ключевое преимущество — возможность передавать сложные типы данных (словари, массивы, тензоры) без сериализации. Например, код:

import Python
let np = Python.import("numpy")
let array = np.array([1, 2, 3])
print(array.shape)  // (3,)

Работает «из коробки». Для сравнения: ранее разработчикам приходилось использовать PythonKit (сторонний фреймворк) с задержками до 30%.

Эксперты отмечают риски: «Интероперабельность может привести к росту гибридного кода, где логика на Python смешивается с Swift, усложняя поддержку», — предупреждает Джон Сандберг, автор книги Swift in Depth. Однако Apple уже внедрила ограничения: Python-код выполняется в изолированном рантайме, а все ошибки обрабатываются через try/catch Swift.

Релиз стабильной версии Swift 6.0 запланирован на осень 2022 года. Бета-версия доступна для тестирования в Xcode 14. Для PythonLib это важный сигнал: экосистема Swift становится ближе к data science, что открывает новые возможности для бэкенд-разработчиков, работающих с iOS и macOS.

Источники: Swift.org, Apple Developer Documentation, интервью с Ted Kremenek (2022).

Рекомендуем библотеки