Компания Apple открыла реализацию языка Swift и реализовала поддержку Linux
3 декабря 2015 года
Компания Apple открыла наработки, связанные с языком программирования Swift, в том числе передала общественности код компилятора, стандартных (Архивная копия от 12 ноября 2020 на Wayback Machine) и базовых библиотек функций, отладчика и пакетного менеджера Swift Package Manager. Помимо открытия кода, компания Apple также предоставила возможность участия заинтересованных лиц в разработке, добавлении новшеств, рецензировании кода и развитии Swift. Код открыт под лицензией Apache 2.0 и опубликован на GitHub. Кроме изначально поддерживаемой платформы OS X, в опубликованном инструментарии заявлена полная поддержка Linux.
Язык будет развиваться в рамках полноценного открытого проекта, во главе которого будет стоять лидер проекта и группа инженеров (Core team), определяющая стратегию развития. Лидер и состав Core team будет выбираться активным сообществом разработчиков Swift. В настоящее время, пост лидера занимает компания Apple, которая является основателем проекта и его единственным разработчиком. Core team также пока состоит из сотрудников Apple. По мере вовлечения в проект независимых участников и других компаний, управляющие позиции смогут занимать и разработчики, не связанные с компанией Apple.
Реализация Swift построена с задействованием технологий свободного проекта LLVM. Вместо сборщика мусора Objective-C в Swift используются средства подсчёта ссылок на объекты, а также предоставляемые в LLVM оптимизации, такие как автовекторизация. Для обеспечения высокой производительности Swift-программы компилируются в машинный код, выполняемый на 30% быстрее кода на Objective-C. Для сборки и организации совместного использования кода предлагается пакетный менеджер Swift Package Manager.
Язык Swift наследует лучшие элементы языков C и Objective-C, и предоставляет объектную модель, совместимую с Objective-C (Swift-код может смешиваться с кодом на С и Objective-C), но отличается использованием средств автоматического распределения памяти и контроля переполнения переменных и массивов, что значительно увеличивает надёжность и безопасность кода. Swift предлагает множество современных методов программирования, таких как замыкания, обобщенное программирование, лямбда-выражения, кортежи и словарные типы, быстрые операции над коллекциями, элементы функционального программирования.
Версия для Linux не привязана к Objective-C Runtime, что позволяет использовать язык в окружениях, в которых отсутствует поддержка Objective-C. Стандартная библиотека (Архивная копия от 12 ноября 2020 на Wayback Machine) предоставляет унифицированный API, общий для Linux и OS X. Для работы без привязки к Objective-C предлагается набор базовых (core) библиотек. Для обращения к специфичным функциям Glibc в Linux и Darwin в OS X предлагаются специальные модули, расширяющие API.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.