Компания Apple открыла наработки, связанные с языком программирования Swift, в том числе передала общественности код компилятора, стандартных и базовых библиотек функций, отладчика и пакетного менеджера Swift Package Manager. Помимо открытия кода, компания Apple также предоставила возможность участия заинтересованных лиц в разработке, добавлении новшеств, рецензировании кода и развитии Swift. Код открыт под лицензией Apache 2.0 и опубликован на GitHib. Кроме изначально поддерживаемой платформы OS X, в опубликованном инструментарии заявлена полная поддержка Linux.
Язык будет развиваться в рамках полноценного открытого проекта, во главе которого будет стоять лидер проекта и группа инженеров (Core team), определяющая стратегию развития. Лидер и состав Core team будет выбираться активным сообществом разработчиков Swift. В настоящее время, пост лидера занимает компания Apple, которая является основателем проекта и его единственным разработчиком. Core team также пока состоит из сотрудников Apple. По мере вовлечения в проект независимых участников и других компаний, управляющие позиции смогут занимать и разработчики, не связанные с компанией Apple.
Реализация Swift построена с задействованием технологий свободного проекта LLVM. Вместо сборщика мусора Objective-C в Swift используются средства подсчёта ссылок на объекты, а также предоставляемые в LLVM оптимизации, такие как автовекторизация. Для обеспечения высокой производительности Swift-программы компилируются в машинный код, выполняемый на 30% быстрее кода на Objective-C. Для сборки и организации совместного использования кода предлагается пакетный менеджер Swift Package Manager.
Язык Swift наследует лучшие элементы языков C и Objective-C, и предоставляет объектную модель, совместимую с Objective-C (Swift-код может смешиваться с кодом на С и Objective-C), но отличается использованием средств автоматического распределения памяти и контроля переполнения переменных и массивов, что значительно увеличивает надёжность и безопасность кода. Swift предлагает множество современных методов программирования, таких как замыкания, обобщенное программирование, лямбда-выражения, кортежи и словарные типы, быстрые операции над коллекциями, элементы функционального программирования.
Версия для Linux не привязана к Objective-C Runtime, что позволяет использовать язык в окружениях, в которых отсутствует поддержка Objective-C. Стандартная библиотека предоставляет унифицированный API, общий для Linux и OS X. Для работы без привязки к Objective-C предлагается набор базовых (core) библиотек. Для обращения к специфичным функциям Glibc в Linux и Darwin в OS X предлагаются специальные модули, расширяющие API. |