Apple выпустил язык программирования Swift 5.3 и открыл код библиотеки Swift System

26 сентября 2020 года

Компания Apple объявила об открытии исходных текстов библиотеки Swift System, предоставляющей идеоматический набор программных интерфейсов к системным вызовам и низкоуровневым типам данных. Изначально Swift System поддерживал только системные вызовы платформ Apple, но теперь портирован и для Linux. Код Swift System написан на языке Swift и распространяется под лицензией Apache 2.0.

Swift System предоставляет единую точку доступа к системным интерфейсам, которую можно использовать на всех поддерживаемых платформах без применения в Swift-программах специфичных для каждой ОС обвязок на языке Си. При этом Swift System не унифицирует сами системные вызовы и предоставляет отдельное подмножество API для каждой поддерживаемой платформы, учитывающее поведение данной платформы и точно отражающее низкоуровневые интерфейсы операционной системы. Ключевой целью создания Swift System является упрощение разработки кросс-платформенных библиотек и приложений, таких как SwiftNIO и SwiftPM. Swift System не отменяет необходимость ветвления на основе "#if os()" при обращении к низкоуровневым примитивам, но делает данную работу более безопасной и удобной.

Также можно отметить публикацию (Архивная копия от 26 сентября 2020 на Wayback Machine) релиза языка программирования 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 наследует лучшие элементы языков C и Objective-C, и предоставляет объектную модель, совместимую с Objective-C (Swift-код может смешиваться с кодом на С и Objective-C), но отличается использованием средств автоматического распределения памяти и контроля переполнения переменных и массивов, что значительно увеличивает надёжность и безопасность кода. Swift также предлагает множество современных методов программирования, таких как замыкания, обобщённое программирование, лямбда-выражения, кортежи и словарные типы, быстрые операции над коллекциями, элементы функционального программирования. Версия для Linux не привязана к Objective-C Runtime, что позволяет использовать язык в окружениях, в которых отсутствует поддержка Objective-C.

Pеализация Swift построена с задействованием технологий свободного проекта LLVM. Для обеспечения высокой производительности Swift-программы компилируются в машинный код, выполняемый в тестах Apple на 30% быстрее кода на Objective-C. Вместо сборщика мусора в Swift используются средства подсчёта ссылок на объекты. В поставку входит пакетный менеджер Swift Package Manager, предоставляющий средства для распространения модулей и пакетов с библиотеками и приложениями на языке Swift, управления зависимостями, автоматизированной загрузки, сборки и связывания компонентов.

Источники

править
 
 
Creative Commons
Эта статья содержит материалы из статьи «Apple выпустил язык программирования Swift 5.3 и открыл код библиотеки Swift System», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.