Компания Apple открыла реализацию языка Swift и реализовала поддержку Linux
Компания Apple открыла наработки, связанные с языком программирования Swift, в том числе передала общественности код компилятора и стандартной библиотеки функций, и запустила специальный сайт для координации деятельности сообщества разработчиков. Код открыт под лицензией Apache 2.0 и опубликован на GitHib. Кроме изначально поддерживаемой платформы OS X, в опубликованном инструментарии заявлена полная поддержка Linux.
Помимо открытия кода, компания Apple также предоставила возможность участия заинтересованных лиц в разработке, добавлении новшеств, рецензировании кода и развитии Swift. Язык будет развиваться в рамках полноценного открытого проекта, во главе которого будет стоять лидер проекта и группа инженеров (Core team), определяющая стратегию развития. Лидер и состав Core team будет выбираться активным сообществом разработчиков Swift. В настоящее время, пост лидера занимает компания Apple, которая является основателем проекта и его единственным разработчиком. Core team также пока состоит из сотрудников Apple. По мере вовлечения в проект независимых участников и других компаний, управляющие позиции смогут занимать и разработчики, не связанные с компанией Apple.
Реализация Swift построена с задействованием технологий свободного проекта LLVM. Вместо сборщика мусора Objective-C в Swift используются средства подсчёта ссылок на объекты, а также предоставляемые в LLVM оптимизации, такие как автовекторизация. Для обеспечения высокой производительности Swift-программы компилируются в машинный код, выполняемый на 30% быстрее кода на Objective-C.
Язык Swift наследует лучшие элементы языков C и Objective-C, и предоставляет объектную модель, совместимую с Objective-C (Swift-код может смешиваться с кодом на С и Objective-C), но отличается использованием средств автоматического распределения памяти и контроля переполнения переменных и массивов, что значительно увеличивает надёжность и безопасность кода. Swift предлагает множество современных методов программирования, таких как замыкания, обобщенное программирование, лямбда-выражения, кортежи и словарные типы, быстрые операции над коллекциями, элементы функционального программирования.
© OpenNet