Interested Article - Swift (язык программирования)

Swift открытый мультипарадигмальный компилируемый язык программирования общего назначения, разработанный и поддерживаемый компанией Apple . Первая версия была представлена в 2014 году.

Чаще всего Swift используется в разработке приложений для macOS , iOS , iPadOS , watchOS , tvOS и VisionOS , однако язык также доступен для Windows и Linux . На платформах Apple язык работает с фреймворками Cocoa и Cocoa Touch и совместим с основной кодовой базой Apple, написанной на более раннем языке Objective-C . Swift задумывался как более лёгкий для чтения и устойчивый к ошибкам программиста язык: существенная часть проблем, которые в случае с Objective-C обнаруживаются только при исполнении программ и приводят к крашам , в Swift в принципе не позволят скомпилировать код .

Компилятор Swift работает на базе LLVM , в результате чего один и тот же код может быть скомпилирован для различных платформ: x86 , ARM , WASM и других. Набор инструментов (toolchain) для работы с языком встроен в интегрированную среду разработки Xcode 6 и выше. Swift может использовать рантайм Objective-C, что делает возможным использование обоих языков (а также языка Си ) в рамках одной программы.

История

Старший вице-президент по разработке программного обеспечения Apple Крейг Федериги во время анонса этого продукта заявил, что язык программирования Swift был заложен ещё в платформе NeXT ( ОС NeXTSTEP выпускалась в 1989 1995 годах ), которая стала основой для современной macOS, а затем и iOS .

Разработка текущего варианта языка Swift была начата в 2010 году , руководителем отдела разработки инструментов для создания программного обеспечения Apple и одним из основных разработчиков LLVM. Swift заимствовал идеи из «Objective-C, Rust , Haskell , Ruby , Python , C# , CLU , и ещё из стольких многих языков, что сложно перечислить» . Первоначально для нового языка использовали название Shiny .

2 июня 2014 года на конференции WWDC Swift был официально представлен вместе с бесплатным руководством по использованию языка объёмом в 500 страниц, доступным на сервисе «iBook Store» .

8 июня 2015 года компания Apple объявила о выпуске новой версии Swift 2.0, которая получила более высокую производительность, новое API обработки ошибок, улучшения синтаксиса языка, а также функцию проверки доступности функций Swift для целевых ОС .

3 декабря 2015 года была выпущена бета версия Swift 3.0 с поддержкой операционных систем OS X , iOS и Linux и лицензированная под открытой лицензией Apache 2.0 license with a Runtime Library Exception . Версия 3.0 обратно не совместима с более ранними версиями языка; начиная с нативной среды разработки XCode версии 9 более версии языка Swift-2 и ранее не поддерживаются.

В начале апреля 2016 неназванный источник СМИ в корпорации Google сообщил, что компания рассматривает возможность перевода языка Swift в язык «первого класса» для платформы Android . Ранее уже предъявлялись прототипы Swift компилятора для Android .

19 сентября 2017 года была выпущена версия Swift 4.0.

В сентябре 2018 года , вместе с новой версией iOS 12 , была выпущена новая стабильная версия языка Swift 4.2, и появилась бета-версия Swift 5.0. В версии 5.0 заявлена, наконец, стабильная работа ABI со стандартными библиотеками (Swift Dynamic Library), Начиная с версии 5.5 представлено первоклассное решение для параллельной обработки данных с асинхронным режимом обработки async/await , а с версии 5.7 и поддержка регулярных выражений на уровне языка.

Swift 5.1 — это следующий крупный релиз Swift, и его задача наконец обеспечить стабильность ABI.

Существенные обновления языка, добавляющие новые возможности или изменяющие прежние условия работы, выпускаются каждые полгода: как правило, в марте и сентябре.

Актуальная версия языка на январь 2023 года — Swift 5.7.

Описание

Swift заимствовал довольно многое из Objective-C , однако он определяется не указателями, а типами переменных, которые обрабатывает компилятор . По аналогичному принципу работают многие скриптовые языки. В то же время, он предоставляет разработчикам многие функции, которые прежде были доступны в C++ и Java , такие как определяемые наименования, обобщения и перегрузка операторов .

Часть функций языка выполняется быстрее по сравнению с другими языками программирования. Например, сортировка комплексных объектов выполняется в 3,9 раз быстрее, чем в Python, и почти в 1,5 раза быстрее, чем в Objective-C [ неавторитетный источник ] .

Код, написанный на Swift, может работать вместе с кодом, написанным на языках программирования C и Objective-C в рамках одного и того же проекта .

Репозитории Swift

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 программ;

Пример кода

// Переменные
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.")
}

См. также

Примечания

  1. — 2023.
  2. . Sotovik.ru (5 июня 2014). Дата обращения: 5 июня 2014. 17 апреля 2016 года.
  3. Laforge, Guillaume. (англ.) (2 июня 2014). Дата обращения: 3 июня 2014. 5 июня 2014 года.
  4. . Apple Developer. — «Swift borrows a clever feature from the D language : these identifiers expand to the location of the caller when evaluated in a default argument list.» Дата обращения: 26 сентября 2014. 21 ноября 2015 года.
  5. . Дата обращения: 3 июня 2022. 9 апреля 2016 года.
  6. . Дата обращения: 29 сентября 2017. 28 августа 2016 года.
  7. . 3DNews (3 июня 2014). Дата обращения: 3 июня 2014. 5 июня 2014 года.
  8. . 3DNews (3 июня 2014). Дата обращения: 3 июня 2014. 5 июня 2014 года.
  9. (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 года.
  10. . Дата обращения: 10 марта 2019. 15 марта 2019 года.
  11. (неопр.) . — Apple, 2014. 3 июня 2014 года.
  12. Habrahabr (9 июня 2015). Дата обращения: 9 июня 2015. 9 июня 2015 года.
  13. CNews (4 декабря 2015). Дата обращения: 5 декабря 2015. 6 декабря 2015 года.
  14. от 3 декабря 2015 на Wayback Machine — Официальный сайт.
  15. . Дата обращения: 10 марта 2017. 9 марта 2017 года.
  16. . Дата обращения: 16 октября 2018. 1 июля 2019 года.
  17. Дата обращения: 16 октября 2018. 17 октября 2018 года.
  18. . Дата обращения: 16 октября 2018. 1 сентября 2018 года.
  19. . AppTractor . 2018-09-13. из оригинала 7 ноября 2018 . Дата обращения: 7 ноября 2018 .
  20. programmers.stackexchange.com. Дата обращения: 18 мая 2016. 9 июня 2016 года.
  21. Swanner, Nate (2016-04-07). . The Next Web (англ.) . из оригинала 9 марта 2017 . Дата обращения: 10 марта 2017 .

Ссылки

  • (англ.) .
  • (англ.) .
Источник —

Same as Swift (язык программирования)