WikiSort.ru - Программирование

ПОИСК ПО САЙТУ | о проекте
Swift
Класс языка мультипарадигмальный ( протоколо-ориентированный, объектно-ориентированный, функциональный, императивный)
Появился в 2014
Автор Крис Латтнер[d]
Разработчик Крис Латтнер[d] и Apple
Расширение файлов .swift
Выпуск 4.2[1] (2018-09-17; 166 дней тому назад)
Основные реализации: 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])
ОС macOS, iOS, tvOS, watchOS, Linux
Сайт swift.org

Swift — открытый мультипарадигмальный компилируемый язык программирования общего назначения. Создан компанией Apple в первую очередь для разработчиков iOS и macOS. Swift работает с фреймворками Cocoa и Cocoa Touch и совместим с основной кодовой базой Apple, написанной на Objective-C. Swift задумывался как более лёгкий для чтения и устойчивый к ошибкам программиста язык, нежели предшествовавший ему Objective-C[7]. Программы на Swift компилируются при помощи LLVM, входящей в интегрированную среду разработки Xcode 6 и выше. Swift может использовать рантайм Objective-C, что делает возможным использование обоих языков (а также С) в рамках одной программы.

История

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

Разработка текущего варианта языка Swift началась в 2010 году Крисом Латтнером[en], руководителем отдела разработки инструментов для создания программного обеспечения Apple и одним из основных разработчиков LLVM. Swift заимствовал идеи из «Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, и ещё из стольких многих языков, что сложно перечислить»[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].

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

В сентябре 2018 года, вместе с новой версией iOS 12, была выпущена новая версия языка Swift 4.2.

Описание

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

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

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

Репозитории 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 numberOfApples = 3
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. Inc., Apple. Swift 4.2 Released! (англ.), Swift.org (17 September 2018). Проверено 2 января 2019.
  2. 1 2 Apple анонсировала новый язык программирования Swift. Sotovik.ru (5 июня 2014). Проверено 5 июня 2014.
  3. Laforge, Guillaume. Apple's Swift programming language inspired by Groovy (англ.) (2 June 2014). Проверено 3 июня 2014.
  4. 1 2 Building assert() in Swift, Part 2: __FILE__ and __LINE__ - Swift Blog -. 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.
  5. swift/LICENSE.txt at master · apple/swift · GitHub
  6. Apple (Россия) - Информация для прессы - Apple открывает исходный код языка Swift
  7. Главные задачи нового языка программирования Apple Swift — скорость и простота разработки. 3DNews (3 июня 2014). Проверено 3 июня 2014.
  8. Главные задачи нового языка программирования Apple Swift — скорость и простота разработки. 3DNews (3 июня 2014). Проверено 3 июня 2014.
  9. Chris Lattner's Homepage (June 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.
  10. The Swift Programming Language. — Apple, 02 June 2014.
  11. Swift 2.0 будет с открытым кодом в конце года.. Habrahabr (9 июня 2015). Проверено 9 июня 2015.
  12. Apple открыла исходный код своего «языка будущего».. CNews (4 декабря 2015). Проверено 5 декабря 2015.
  13. About Swift — Официальный сайт.
  14. Google may be considering Swift for use on Android
  15. Running Swift code on Android
  16. Swift on Android: The Future of Cross-Platform Programming?
  17. swift/Android.md at master · apple/swift · GitHub
  18. How can Swift be so much faster than Objective-C in these comparisons?. programmers.stackexchange.com. Проверено 18 мая 2016.
  19. Swanner, Nate. Google may be considering Swift for use on Android (англ.), The Next Web (7 апреля 2016). Проверено 10 марта 2017.

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии