9 ДЕКАБРЯ 2022 г. Тони Паркер


Тони Паркер руководит командами Apple, работающими над пакетами Foundation и Swift.


Фреймворк Foundation используется почти во всех проектах Swift. Он обеспечивает как базовый уровень функциональности для таких основных элементов, как строки, коллекции и даты, так и устанавливает соглашения для написания отличного Swift-кода.

Сегодня у нас есть несколько интересных объявлений о будущем Foundation.

Открытость

Когда Swift начинал свою жизнь как open source-проект, мы хотели открыть не только сам язык, но и экосистему вокруг него. Foundation был решающим в успехе программного обеспечения на протяжении десятилетий и с самого начала стал неотъемлемой частью опыта Swift-разработчиков, и мы знали, что он должен быть включен в идею с открытым исходным кодом.

Проект swift-corelibs-foundation помог запустить Swift-версию open source Foundation в 2016 году, обернув в Swift уже существующую реализацию Foundation с открытым исходным кодом на языке С.

За прошедшие годы Swift вырос как технологически (например, стабильность ABI), так и социально, привлекая разнообразное сообщество участников, объединенных интересом к Swift.

С данным ростом пришло время пересмотреть стратегию open source-фреймворка Foundation.

Идем Дальше

Сегодня мы анонсируем новый open source-проект Foundation, написанный на Swift, для Swift.

Это позволяет решить ряд технических задач:

  • Больше никакого обернутого C. С нативной Swift-реализацией Foundation, фреймворк больше не теряет на преобразовании между C и Swift, что приводит к более высокой производительности. Реализация Swift, разработанная в виде пакета, также упрощает Swift-разработчикам проверку, понимание и добавление кода.

  • Предоставление возможности выбора более мелких, более детализированных пакетов. Переписывание Foundation дает возможность привести его архитектуру в соответствие с развивающимися вариантами использования. Разработчики хотят, чтобы их двоичные файлы оставались небольшими, и новый пакет FoundationEssentials предоставит наиболее важные типы в Foundation без системных зависимостей, чтобы помочь в достижении этой цели. Отдельный пакет FoundationInternationalization будет доступен при работе с локализованным контентом, таким как отформатированные даты и время. Другие пакеты будут по-прежнему обеспечивать поддержку XML и работу с сетями. Новый пакет FoundationObjCCompatibility будет содержать устаревшие API, полезные для некоторых приложений.

  • Унификация реализаций Foundation. Множественные реализации любого API подвержены расхождениям в поведении и, в конечном итоге, ошибкам при перемещении кода между платформами. Этот новый пакет Foundation будет служить ядром единой, канонической реализации Foundation, независимо от платформы.

И это также достигает важной цели сообщества:

  • Открытый процесс содействия. Проекты с открытым исходным кодом лучше всего проявляют себя, когда сообщество пользователей может участвовать и становиться сообществом разработчиков. Будет доступен новый открытый процесс содействия, позволяющий всем разработчикам вносить новый API в Foundation.

Идем Вместе

Мы рады начать обсуждение этих планов со всеми на форумах Swift. Сам проект будет запущен на GitHub в 2023 году.