Чаще всего Swift используется в разработке приложений для macOS, iOS, iPadOS, watchOS, tvOS и VisionOS, однако язык также доступен для Windows и Linux. На платформах Apple язык работает с фреймворкамиCocoa и Cocoa Touch и совместим с основной кодовой базой Apple, написанной на более раннем языке Objective-C. Swift задумывался как более лёгкий для чтения и устойчивый к ошибкам программиста язык: существенная часть проблем, которые в случае с Objective-C обнаруживаются только при исполнении программ и приводят к крашам, в Swift в принципе не позволят скомпилировать код[6].
Компилятор Swift работает на базе LLVM, в результате чего один и тот же код может быть скомпилирован для различных платформ: x86, ARM, WASM и других. Набор инструментов (toolchain) для работы с языком встроен в интегрированную среду разработкиXcode 6 и выше. Swift может использовать рантайм Objective-C, что делает возможным использование обоих языков (а также языка Си) в рамках одной программы.
Разработка текущего варианта языка Swift была начата в 2010 годуКрисом Латтнером[англ.], руководителем отдела разработки инструментов для создания программного обеспечения Apple и одним из основных разработчиков LLVM. Swift заимствовал идеи из «Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, и ещё из стольких многих языков, что сложно перечислить»[8]. Первоначально для нового языка использовали название Shiny[9].
2 июня2014 года на конференции WWDC Swift был официально представлен вместе с бесплатным руководством по использованию языка объёмом в 500 страниц, доступным на сервисе «iBook Store»[10].
8 июня2015 года компания Apple объявила о выпуске новой версии Swift 2.0, которая получила более высокую производительность, новое API обработки ошибок, улучшения синтаксиса языка, а также функцию проверки доступности функций Swift для целевых ОС[11].
3 декабря 2015 года была выпущена бета версия Swift 3.0 с поддержкой операционных систем OS X, iOS и Linux и лицензированная под открытой лицензией Apache 2.0 license with a Runtime Library Exception[12][13]. Версия 3.0 обратно не совместима с более ранними версиями языка; начиная с нативной среды разработки XCode версии 9 более версии языка Swift-2 и ранее не поддерживаются.
В начале апреля 2016 неназванный источник СМИ в корпорации Google сообщил, что компания рассматривает возможность перевода языка Swift в язык «первого класса» для платформы Android[14]. Ранее уже предъявлялись прототипы Swift компилятора для Android[15][16][17].
В сентябре 2018 года, вместе с новой версией iOS 12, была выпущена новая стабильная версия языка Swift 4.2, и появилась бета-версия Swift 5.0. В версии 5.0 заявлена, наконец, стабильная работа ABI со стандартными библиотеками (Swift Dynamic Library), Начиная с версии 5.5 представлено первоклассное решение для параллельной обработки данных с асинхронным режимом обработки async/await[18], а с версии 5.7 и поддержка регулярных выражений на уровне языка.
20 сентября 2019 Swift 5.1 — это следующий крупный релиз Swift, и его задача наконец обеспечить стабильность ABI.
17 сентября 2024 Swift 6.0 — крупный релиз Swift, расширяющий низкоуровневые возможности подкласса для встроеных систем, улучшеную поддержку Linux и Windows, новые кросс платформенные API включающие новую Swift Testing library.
Существенные обновления языка, добавляющие новые возможности или изменяющие прежние условия работы, выпускаются каждые полгода: как правило, в марте и сентябре.
Актуальная версия языка на сентябрь 2024 года — Swift 6.0
Описание
Swift заимствовал довольно многое из Objective-C, однако он определяется не указателями, а типами переменных, которые обрабатывает компилятор. По аналогичному принципу работают многие скриптовые языки. В то же время, он предоставляет разработчикам многие функции, которые прежде были доступны в C++ и Java, такие как определяемые наименования, обобщения и перегрузка операторов.
Код, написанный на Swift, может работать вместе с кодом, написанным на языках программирования C и Objective-C в рамках одного и того же проекта[1].
Apple разделила код Swift на несколько открытых репозиториев.
Компилятор и стандартная библиотека:
Swift: основной Swift репозиторий, который содержит исходный код для компилятора Swift, стандартная библиотека и SourceKit;
Swift-Evolution: документы, относящиеся к продолжающемуся развитию Swift, включая цели для предстоящих выпусков, предложения для изменений и расширений Swift;
Библиотеки ядра:
Swift corelibs-foundation: исходный код для Foundation, который предоставляет общую функциональность для всех приложений;
Swift corelibs-libdispatch: исходный код для libdispatch, который предоставляет примитивы параллелизма для работы на многоядерном аппаратном обеспечении;
Swift corelibs-xctest: исходный код для XCTest, который обеспечивает фундаментальную инфраструктуру тестирования для Swift-приложений и библиотек;
Менеджер пакетов:
Swift package-manager: исходный код для менеджера пакетов Swift;
Swift llbuild: исходный код для llbuild, системы низкого уровня, которую использует Swift package-manager;
Клонированные репозитории:
Swift опирается на несколько других проектов с открытым кодом, особенно на компилятор LLVM.
Swift llvm: исходный код LLVM, с кусочками Swift-дополнений;
Swift clang: исходный код для Clang, с кусочками Swift дополнений;
Swift lldb: исходный код Swift-версии LLDB, для отладки Swift программ;
// КонстантыletspeedOfLight=299_792_458letnumberOfApples=345letnumberOfOranges=5letappleSummary="I have \(numberOfApples) apples."letfruitSummary="I have \(numberOfApples + numberOfOranges) pieces of fruit."
print("Hello, world")letpeople=["Anna":67,"Beto":8,"Jack":33,"Sam":25]for(name,age)inpeople{print("\(name) is \(age) years old.")}
↑Chris Lattner's Homepage (неопр.) (3 июня 2014). — «I started work on the Swift Programming Language in July of 2010. I implemented much of the basic language structure, with only a few people knowing of its existence. A few other (amazing) people started contributing in earnest late in 2011, and it became a major focus for the Apple Developer Tools group in July 2013 [...] drawing ideas from Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others to list.» Дата обращения: 3 июня 2014. Архивировано 22 декабря 2015 года.