Компания Apple представила язык программирования Swift 5.2

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

При подготовке нового выпуска основное внимание было уделено расширению средств диагностики в компиляторе, повышению надёжности отладки, улучшению обработки зависимостей в пакетном менеджере и расширению поддержки протокола LSP (Language Server Protocol). В язык добавлена поддержка вызываемых значений и возможность использования выражений вида »\Root.value» в качестве функций.

Напомним, что язык 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, управления зависимостями, автоматизированной загрузки, сборки и связывания компонентов.


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

© OpenNet