Swift — открытый мультипарадигмальный компилируемый язык программирования общего назначения, разработанный и поддерживаемый компанией Apple. Первая версия была представлена в 2014 году.
Swift | |
---|---|
![]() | |
Класс языка | мультипарадигмальный (протоколо-ориентированный, объектно-ориентированный, функциональный, императивный) |
Появился в | 2014 |
Автор | Крис Латтнер[d] |
Разработчик | Крис Латтнер[d] и Apple |
Расширение файлов |
.swift |
Выпуск |
|
Основные реализации | LLVM |
Испытал влияние | Objective-C, C++, Java[2], Rust, Scala, Python, Ruby, Smalltalk, Groovy[3], язык D[4] |
Лицензия | с версии 2.2 Open Source (Apache 2.0 with a Runtime Library Exception[5][6]) |
Сайт | swift.org |
ОС |
macOS, iOS, iPadOS, tvOS, watchOS, Linux, Microsoft Windows |
![]() |
Чаще всего Swift используется в разработке приложений для macOS, iOS, iPadOS, watchOS и tvOS, однако язык также доступен для Windows и Linux. На платформах Apple язык работает с фреймворками Cocoa и Cocoa Touch и совместим с основной кодовой базой Apple, написанной на более раннем языке Objective-C. Swift задумывался как более лёгкий для чтения и устойчивый к ошибкам программиста язык: существенная часть проблем, которые в случае с Objective-C обнаруживаются только при исполнении программ и приводят к крэшам, в Swift в принципе не позволят скомпилировать код[7].
Компилятор Swift работает на базе LLVM, в результате чего один и тот же код может быть скомпилирован для различных платформ: x86, ARM, WASM и других. Набор инструментов (toolchain) для работы с языком встроен в интегрированную среду разработки Xcode 6 и выше. Swift может использовать рантайм Objective-C, что делает возможным использование обоих языков (а также языка Си) в рамках одной программы.
Старший вице-президент по разработке программного обеспечения Apple Крейг Федериги во время анонса этого продукта заявил, что язык программирования Swift был заложен ещё в платформе NeXT (ОС NeXTSTEP выпускалась в 1989—1995 годах), которая стала основой для современной macOS, а затем и iOS[8].
Разработка текущего варианта языка Swift была начата в 2010 году Крисом Латтнером[en], руководителем отдела разработки инструментов для создания программного обеспечения Apple и одним из основных разработчиков LLVM. Swift заимствовал идеи из «Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, и ещё из стольких многих языков, что сложно перечислить»[9]. Первоначально для нового языка использовали название Shiny[10].
2 июня 2014 года на конференции WWDC Swift был официально представлен вместе с бесплатным руководством по использованию языка объёмом в 500 страниц, доступным на сервисе «iBook Store»[11].
8 июня 2015 года компания Apple объявила о выпуске новой версии Swift 2.0, которая получила более высокую производительность, новое API обработки ошибок, улучшения синтаксиса языка, а также функцию проверки доступности функций Swift для целевых ОС[12].
3 декабря 2015 года была выпущена бета версия Swift 3.0 с поддержкой операционных систем OS X, iOS и Linux и лицензированная под открытой лицензией Apache 2.0 license with a Runtime Library Exception[13][14]. Версия 3.0 обратно не совместима с более ранними версиями языка; начиная с нативной среды разработки XCode версии 9 более версии языка Swift-2 и ранее не поддерживаются.
В начале апреля 2016 неназванный источник СМИ в корпорации Google сообщил, что компания рассматривает возможность перевода языка Swift в язык «первого класса» для платформы Android[15]. Ранее уже предъявлялись прототипы Swift компилятора для Android[16][17][18].
19 сентября 2017 года была выпущена версия Swift 4.0.
В сентябре 2018 года, вместе с новой версией iOS 12, была выпущена новая стабильная версия языка Swift 4.2, и появилась бета-версия Swift 5.0. В версии 5.0 заявлена, наконец, стабильная работа ABI со стандартными библиотеками (Swift Dynamic Library), поддержка регулярных выражений и первоклассное решение для параллельной обработки данных с асинхронным режимом обработки async/await[19].
20 сентября 2019 Swift 5.1 — это следующий крупный релиз Swift, и его задача наконец обеспечить стабильность ABI.
Существенные обновления языка, добавляющие новые возможности или изменяющие прежние условия работы, выпускаются каждые полгода: как правило, в марте и сентябре.
Актуальная версия языка на май 2022 года — Swift 5.6.
Swift заимствовал довольно многое из Objective-C, однако он определяется не указателями, а типами переменных, которые обрабатывает компилятор. По аналогичному принципу работают многие скриптовые языки. В то же время, он предоставляет разработчикам многие функции, которые прежде были доступны в C++ и Java, такие как определяемые наименования, обобщения и перегрузка операторов.
Часть функций языка выполняется быстрее по сравнению с другими языками программирования. Например, сортировка комплексных объектов выполняется в 3,9 раз быстрее, чем в Python, и почти в 1,5 раза быстрее, чем в Objective-C[20][неавторитетный источник?][21].
Код, написанный на Swift, может работать вместе с кодом, написанным на языках программирования C и Objective-C в рамках одного и того же проекта[2].
Apple разделила код Swift на несколько открытых репозиториев.
// Переменные
var implicitInteger = 70
var implicitDouble = 70.0
var explicitDouble: Double = 70
// Константы
let speedOfLight = 299_792_458
let numberOfApples = 345
let numberOfOranges = 5
let appleSummary = "I have \(numberOfApples) apples."
let fruitSummary = "I have \(numberOfApples + numberOfOranges) pieces of fruit."
print("Hello, world")
let people = ["Anna": 67, "Beto": 8, "Jack": 33, "Sam": 25]
for (name, age) in people {
print("\(name) is \(age) years old.")
}
![]() Язык программирования Си | |
---|---|
| |
Компиляторы |
|
Библиотеки |
|
Особенности |
|
Некоторые потомки | |
C и другие языки |
|
![]() |