Компания Apple открыла исходные тексты библиотеки Swift System. Она предоставляет идиоматический набор программных интерфейсов к системным вызовам и низкоуровневым типам данных. Изначально Swift System поддерживал только системные вызовы платформ Apple, но сейчас портирован и для Linux. Swift System написан на языке Swift, компания распространяет его под лицензией Apache 2.0.
Swift System удобна тем, что предоставляет единую точку доступа ко всем системным интерфейсам. Эту возможность можно использовать на всех поддерживаемых платформах, без специфических обвязок на C в Swift-программах. Положительный момент в том, что Swift System не унифицирует системные вызовы, а предоставляет отдельное подмножество API для каждой поддерживаемой платформы, с учетом ее поведения и точным отражением низкоуровневых интерфейсов ОС.
Ранее компания заявила, что ключевая цель создания Swift System — упрощение разработки кросс-платформенных библиотек и приложений, включая SwiftNIO и SwiftPM. Swift System не отменяет при этом необходимость ветвления на основе "#if os()" при обращении к низкоуровневым примитивам, зато упрощает эту работу и делает ее более безопасной.
Еще одна новость — выход Swift 5.3. Официальные сборки готовы для таких ОС, как Linux (Ubuntu 16.04/18.04/20.04, СentOS 7/8), macOS (Xcode 12) и Windows 10. Исходные тексты распространяются под лицензией Apache 2.0.
В новом выпуске добавлена начальная поддержка платформы Windows, плюс поставка инструментария для сборки и запуска Swift-приложений в Windows 10. Разработчики продолжают совершенствовать функциональность языка. В числе прочих новинок стоит отметить появление инициализатора для типа String, расширение применение выражения «where», изменение семантики didSet, поддержки указания нескольких шаблонов в выражениях Catch, добавление типа Float16, атомарные операции с памятью.
Важный момент — снижение размера результирующих приложений. Так, если в Swift 4 размер уже готовой программы превышал аналог на Objective-C в 2,3 раза, то сейчас этот разрыв сокращен до 1,5 раза. В новом выпуске еще и ускорена инкрементальная сборка и сборка кода с большим числом свойств и функций, которые импортируются из других библиотек. Расширены свойства диагностики в компиляторе и качество выводимых сообщений об ошибках. В пакетном менеджере еще и реализована возможность включения в пакеты дополнительных ресурсов, которые необходимы во время исполнения. Например, изображения. В пакетном менеджере появилась поддержка компонентов для локализации с возможностью определения условных зависимостей.
Swift — современный язык с большим количеством современных методов программирования, включая замыкания, обобщенное программирование, лямбда-выражения, кортежи и словарные типы, быстрые операции над коллекциями, элементы функционального программирования.
Реализация Swift предусматривает задействование технологий свободного проекта LLVM. Для обеспечения высокой производительности Swift-приложения компилируются в машинный код, который выполняется в тестах Apple на 30% быстрее кода на Objective-C. Так, вместо сборщика мусора в Swift используются средства подсчета ссылок на объекты.
В поставку входит пакетный менеджер Swift Package Manager, который предоставляет средства для распространения модулей и пакетов с библиотеками и приложениями на языке Swift, управления зависимостями, автоматизированной загрузки, сборки и связывания компонентов.
FreeNickname
Спасибо за статью!
Читается так, будто в Objective-C используется сборщик мусора. Не используется. Точнее, он был в целой одной версии OS X много лет назад.