Компания Apple объявила о выходе языка программирования Swift 3.0, первом значительном выпуске после открытия исходных текстов проекта. Официальные сборки подготовлены для Linux (Ubuntu 14.04, 15.10) и macOS (Xcode). Исходные тексты распространяются под лицензией Apache 2.0.
В новом выпуске отмечается значительное расширение порта для платформы Linux, в состав которого включён ранее недоступный для Linux набор библиотек Swift Core Libraries. Версия для Linux не привязана к Objective-C Runtime, что позволяет использовать язык в окружениях, в которых отсутствует поддержка Objective-C. В основной состав также включён пакетный менеджер Swift Package Manager, предоставляющий средства для распространения модулей и пакетов с библиотеками и приложениями на языке Swift. Пакетный менеджер включает средства для управления зависимостями, систему автоматизированной загрузки, сборки и связывания компонентов.
В сам язык также включена большая порция изменений, в том числе нарушающих совместимость с выпусками Swift 2.2 и 2.3. Например, удалена поддержка синтаксиса определения функций "func foo(x: Int)(y: Int)", удалена возможность применения выражения "var" в блоке аргументов функций, прекращена поддержка операторов "++" и "--", прекращена поддержка циклов "for" в стиле языка Си, проведена унификация API (переименовано большинство функций) и полностью изменены средства для импорта Objective-C API в Swift.
Напомним, что реализация Swift построена с задействованием технологий свободного проекта LLVM. Для обеспечения высокой производительности Swift-программы компилируются в машинный код, выполняемый в тестах Apple на 30% быстрее кода на Objective-C. Вместо сборщика мусора в Swift используются средства подсчёта ссылок на объекты. Язык Swift наследует лучшие элементы языков C и Objective-C, и предоставляет объектную модель, совместимую с Objective-C (Swift-код может смешиваться с кодом на С и Objective-C), но отличается использованием средств автоматического распределения памяти и контроля переполнения переменных и массивов, что значительно увеличивает надёжность и безопасность кода. Swift также предлагает множество современных методов программирования, таких как замыкания, обобщенное программирование, лямбда-выражения, кортежи и словарные типы, быстрые операции над коллекциями, элементы функционального программирования. |