Компания Apple представила язык программирования Swift 3.0
20 сентября 2016 года
Компания Apple объявила (Архивная копия от 14 октября 2016 на Wayback Machine) о выходе языка программирования 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 также предлагает множество современных методов программирования, таких как замыкания, обобщенное программирование, лямбда-выражения, кортежи и словарные типы, быстрые операции над коллекциями, элементы функционального программирования.
Источники
править- Главная ссылка к новости (https://swift.org/blog/swift-3...) (Архивная копия от 14 октября 2016 на Wayback Machine)
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.