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

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Swift
Swift logo with text.svg
Класс языка:

мультипарадигмальный ( протоколо-ориентированный, объектно-ориентированный, функциональный, императивный)

Появился в:

2014

Автор:

Крис Латтнер[d]

Расширение файлов:

.swift

Выпуск:

2.2.1[1] (2016-05-03; 88 дней тому назад)

Тестовая версия:

3.0 Snapshot (2016-02-08; 173 дня тому назад)

Основные реализации:

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, tvOS, watchOS, Linux, Android

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

История[править | править вики-текст]

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

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

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

Версия Swift 1.0 была выпущена 9 сентября 2014 года, вместе с «Gold Master» версией Xcode 6.0 для iOS.

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].

10 апреля 2016 года Google объявила о намерениях сделать Swift так называемым «первым языком» для Android. Язык программирования очень быстрый, поэтому Google планирует им воспользоваться. Скорее всего, это уменьшит количество приложений, которые сначала выходят на iOS, а позже на Android[15].

Описание[править | править вики-текст]

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

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

Код, написанный на 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. Swift.org - Download Swift
  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 announces Swift, a new programming language for iOS and OS X (англ.). The Next Web (2 June 2014). Проверено 3 июня 2014.
  9. Главные задачи нового языка программирования Apple Swift — скорость и простота разработки (рус.). 3DNews (3 июня 2014). Проверено 3 июня 2014.
  10. 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.
  11. The Swift Programming Language. — Apple.
  12. Swift 2.0 будет с открытым кодом в конце года. (рус.). Habrahabr (9 июня 2015). Проверено 9 июня 2015.
  13. Apple открыла исходный код своего «языка будущего». (рус.). CNews (4 декабря 2015). Проверено 5 декабря 2015.
  14. About Swift — Официальный сайт.
  15. Android в скором будет поддерживать Apple Swift | AndroidLime. androidlime.ru. Проверено 11 апреля 2016.
  16. How can Swift be so much faster than Objective-C in these comparisons?. programmers.stackexchange.com. Проверено 18 мая 2016.

Ссылки[править | править вики-текст]