Будущее Foundation
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 году.