Компания Apple опубликовала язык программирования Swift 6.3

Компания Apple опубликовала релиз языка программирования Swift 6.3. Официальные сборки подготовлены для Linux, Windows и macOS. Исходные тексты распространяются под лицензией Apache 2.0.

Язык Swift сочетает лучшие элементы языков C и Objective-C, и предоставляет объектную модель, совместимую с Objective-C (Swift-код может смешиваться с кодом на С и Objective-C), но отличается использованием средств автоматического распределения памяти, контроля переполнения переменных и массивов, защитой от использования неинициализированных переменных и блокированием доступа к памяти после её освобождения, что значительно увеличивает надёжность и безопасность кода. Swift также предлагает множество современных методов программирования, таких как замыкания, обобщённое программирование, лямбда-выражения, кортежи и словарные типы, быстрые операции над коллекциями, элементы функционального программирования.

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

Ключевые изменения в новой версии:

  • Предложен первый официальный релиз Swift SDK для платформы Android, позволяющий использовать язык Swift для разработки приложений для Android, а также встраивать отдельные компоненты на Swift в существующие Android-приложения, написанные на Java и Kotlin.
  • Добавлен атрибут «@c», позволяющий экспортировать написанные на Swift функции и перечисления (enum) для использования в коде на языке Си (генерируется заголовочный файл с соответствующими определениями для Си).
  • Реализованы селекторы модулей, позволяющие явно указывать, из какого модуля использовать API, если несколько импортированных модулей предоставляют API с одинаковым именем.
    
       import ModuleA
       import ModuleB
    
       let x = ModuleA::getValue() // вызов 'getValue' из ModuleA
       let y = ModuleB::getValue() // вызов 'getValue' из ModuleB
    
  • Добавлены новые атрибуты для управления оптимизациями, применяемыми компилятором: @specialize — специализация обобщённых (generic) API для часто используемых типов; @inline — inline-развёртывание функции по месту вызова; @export(implementation) — экспорт реализации функции в стабильный ABI библиотеки.
  • Предложена предварительная реализация варианта сборочной системы Swift Build, интегрированного в пакетный менеджер SwiftPM (Swift Package Manager).

Источник: http://www.opennet.ru/opennews/art.shtml?num=65095